oracle数据库blob导出PDF

oracle数据库blob导出PDF
blob 数据库类型是存储4g以内的二进制文件流,是不会改变文件任何地方的,存入数据库之后,再获取出来也是一个很好的文件管理。

一下是我写的一个导出数据库的代码,网上老是找不到好用的。

源代码如下:
ArrayList lis = new ArrayList();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
Model.Contract info = new Model.Contract();
info = (Model.Contract)dataGridView1.Rows[i].Tag;
if (info != null &&
(bool)((DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]).Edit edFormattedValue)
lis.Add(info);
}
if (lis != null && lis.Count > 1)
{
MessageBox.Show("请选择一条合同修改!", "提示");
}
else if (lis != null && lis.Count == 1)
{
Model.Contract info = (Model.Contract)lis[0];
string fileName = info.CotrName;
string saveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "pdf";
saveDialog.Filter = "pdf文件|*.pdf";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") < 0) return; //被点了取消
string connString = "User ID=scott;Password=tiger;Data
Source=orcl;";
string strSQL = @"select
files
from com_contract t
where t.cotrid = '{0}'";
strSQL = string.Format(strSQL, info.CotrID);
OracleLob lob = null;
OracleConnection conn = new OracleConnection(connString);
conn.Open();
OracleCommand oraCmd = new OracleCommand(strSQL, conn);
//DataReader提供一种从数据库读取行的只进流的方式。

OracleDataReader reader = oraCmd.ExecuteReader();
try
{
reader.Read();
lob = reader.GetOracleLob(0);
if (lob != null && lob.Length > 0)
{
FileStream fs = new FileStream(saveFileName, FileMode.Create); BinaryWriter w = new BinaryWriter(fs);
byte[] pdf = new byte[lob.Length];
BinaryReader read = new BinaryReader(lob);
read.Read(pdf, 0, Convert.ToInt32(lob.Length));
w.Write(pdf);
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("下载合同PDF文件失败!" + ex.ToString(), "提示"); }
finally
{
reader.Close();
conn.Close();
}
}
else
MessageBox.Show("请选择下载合同!", "提示");
这个是pdf 的取出保存,其实excel、word、图片等都是可以的,视频不大于这个范围应该也是没有问题的。

希望对大家有帮助。

合集下载

利用oracle数据库的blob字段保存各种文件的方法

利用oracle数据库的blob字段保存各种文件的方法
I N O 9 3 4 SS 1 O - 0 4
E ma :s@cc.e. - ij l h cc ta n c
htp/www.nz . t n eh o g o ue K o ld e dT cn l y电脑 知 识 与技术 a o
e o lO wrt ma f r, yrn igase i QL s tme t,h lsaesoe eOrcebn r ref l, n a era i rto i eas l s t e b u nn ca S t e n s tefe r trdi t al iayl g ed a dc nb e dl t l o wa p l a i nh a i y
Ab t a t n t erd i r , n D t o n ep i s a e a c m ua e t f o u n s sr c :I h i a y wo k ma y U i re tr r e v c u ltd al c me t Ho t t r n r a i et ee d c me t, l s s h o o d . w O so e a d o g n z h s o u n s h w o e e t ey a c s a d u et e t e e a d s r a r b e . r e o v h s r b e u i g P weBu l e s e in o t f ci l c e s n s h m, h n b c me awi ep e d p o lm I o d rt s l et i p o lm, sn o r i r ad s - v n O d a g
Vo , . 2 Au u t 01 . 18 No 2 , g s 2 2
Te + 6 5 — 6 0 6 5 9 9 4 h 8 — 51 5 9 9 3 6 0 6

Oracle数据库中包含CLOB字段表的导出和导入

Oracle数据库中包含CLOB字段表的导出和导入

Oracle数据库中包含CLOB字段表的导出和导⼊1.表的导出和导⼊因为oracle中存储⼤量数据的CLOB字段默认是不导出的,所以在导出时需要特别设置⼀下。

我使⽤DBVisualizer这个⼯具进⾏导出和导⼊。

软件版本:DBVisualizer Pro 10.0.16导出表Connections ->(数据库名称)-> Schemas -> (⽤户名)-> Tables -> (表名)⿏标右键-》Export Table ...Settings选项设置Output Format 选择 CSV 导出为SQL⽂件会有超过4000报错的情况,所以这⾥导出⽂件为CSV⽂件Output Destination 选择 File 指定导出的⽂件路径点击 Data Format Settings 按钮Binary/BLOB 选择 Value 默认是不导出CLOB 选择 Value 默认是不导出Quote Text Value 选择 None 默认是双引号把值括起来,这样的在导⼊时会将双引号也导⼊,所以不对值加双引号点击 Ok点击 Export 导出完成,⽣成⼀个CSV⽂件导⼊表Connections ->(数据库名称)-> Schemas -> (⽤户名)-> Tables -> (表名)⿏标右键-》Import Table Data...Next -> Next这⾥需要注意⼀下:这⾥可以修改数据格式,⾃动识别的时候可能会将Number类型的识别为Boolean类型,导致导⼊报错,如果报错,则查看这⾥是否和数据库中格式⼀致,如果不⼀致的则进⾏修改:Data -> Grid -> 点击数据类型进⾏修改Next -> Next -> Import 导⼊完毕,查看结果,如果有错误则进⾏排查导出为SQL⽂件会有超过4000报错的情况,所以这⾥导出⽂件为CSV⽂件。

oracle中对blob字段的处理方法

oracle中对blob字段的处理方法

Oracle中对BLOB字段的处理方法详解BLOB(binary large object)是一种可以存储二进制文件的数据类型,常用于保存图片、音频、视频等大型数据。

在Oracle数据库中,BLOB字段的处理方法有以下几个方面:如何创建和插入BLOB字段如何读取和修改BLOB字段如何导出和导入BLOB字段如何使用DBMS_LOB包和UTL_FILE包操作BLOB字段本文将对这些方面进行详细的介绍和示例,帮助读者掌握Oracle中对BLOB字段的处理方法。

一、创建和插入BLOB字段在Oracle中,创建一个包含BLOB字段的表的语法如下:CREATE TABLE table_name (column1 datatype,column2 datatype,...blob_column BLOB,...);其中,blob_column是BLOB字段的名称,可以指定一些存储属性,如表空间、数据块大小、是否禁用行内存储等。

例如:CREATE TABLE t_lob (id NUMBER(4),name VARCHAR2(10),photo BLOB)LOB (photo) STORE AS (TABLESPACE ts_lobCHUNK 8KDISABLE STORAGE IN ROW);这个语句创建了一个名为t_lob的表,其中包含一个名为photo的BLOB字段,该字段存储在ts_lob表空间中,每个数据块大小为8K,且禁用了行内存储,即BLOB数据不会与其他列数据存储在同一行中,而是存储在一个单独的段中。

插入BLOB字段的数据有两种方法:使用EMPTY_BLOB()函数插入一个空的BLOB对象,然后再使用SELECT ... FOR UPDATE语句获取该对象的引用,并通过其提供的方法写入数据。

例如:-- 插入一个空的BLOB对象INSERT INTO t_lob VALUES (1, 'Alice', EMPTY_BLOB());-- 获取该对象的引用DECLAREv_blob BLOB;BEGINSELECT photo INTO v_blob FROM t_lob WHERE id =1FOR UPDATE;-- 写入数据使用TO_BLOB()函数将一个RAW类型的值转换为BLOB类型,并直接插入到表中。

oracle数据库导出大全

oracle数据库导出大全

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。

如果平时对数据库做了备份,那么此时恢复数据就显得很容易。

由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。

ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。

导出备份是一种逻辑备份,冷备份和热备份是物理备份。

---- 一、导出/导入(Export/Import)---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

---- 1. 简单导出数据(Export)和导入数据(Import)---- Oracle支持三种类型的输出:---- (1)表方式(T方式),将指定表的数据导出。

---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。

---- (3)全库方式(Full方式),将数据库中的所有对象导出。

---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

---- 2. 增量导出/导入---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。

在进行此种导出时,系统不要求回答任何问题。

导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

---- 增量导出包括三个类型:---- (1)“完全”增量导出(Complete)---- 即备份整个数据库,比如:---- $exp system/manager inctype=complete file=990702.dmp ---- (2)“增量型”增量导出---- 备份上一次备份后改变的数据。

Oracle中存取BLOB对象实现文件的上传和下载

Oracle中存取BLOB对象实现文件的上传和下载

if (rs.next()) {
//上面代码不变
//这里不能用oracle.sql.BLOB,会报ClassCast 异常
weblogic.jdbc.vendor.oracle.OracleThinBlobblob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) rs.getBlob(1);
int len = 0;
while ( (len = ins.read(b)) != -1) {
fout.write(b, 0, len);
}
//依次关闭
fout.close();
ins.close();
处理页面(handle.jsp)的代码如下
4. 从数据库读取BLOB然后保存到客户端磁盘上
这段代码有点诡异,执行后将会弹出文件保存对话窗口,将BLOB数据读出保存到本地文件。全文列出如下:
注意,在之外,绝对不能有任何字符,空格或回车都不行,不然会导致outputStream出错,对非ASCII输出文件来说就是格式错误不可读。
在Oracle中存取BLOB对象实现文件的上传和下载
2006-09-08数据库 Oracle 9i
应用服务器 BEA Weblogic 8.11
开发工具 JBuilder X
在JSP实现文件Upload/Download可以分成这样几块:文件提交到形成InputSteam;InputSteam以BLOB格式入库;数据从库中读出为InputSteam;InputStream输出到页面形成下载文件。先说BLOB吧。
Statement st = con.createStatement();

Oracle数据库导入导出方法汇总

Oracle数据库导入导出方法汇总

Oracle数据库导入导出方法:1.使用命令行:数据导出:1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2.将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3.将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)4.将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面加上compress=y来实现。

数据的导入:1.将D:\daochu.dmp 中的数据导入TEST数据库中。

imp system/manager@TEST file=d:\daochu.dmpimp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y 就可以了。

2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)3.不同名用户之间的数据导入:imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmplog=c:\orabackup\hkbimp.log;2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。

Oracle数据库导入导出命令总结

Oracle数据库导入导出命令总结Oracle数据库导入导出命令总结执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle中,安装目录\\ora9i\\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件是被包装后的类文件。

SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出:1将数据库zxcc完全导出,用户名kf密码zx导出到D:\\zxcc.dmp中expkf/zx@zxccfile=d:\\zxcc.dmpfull=yfull=y表示全库导出。

full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

2将数据库zxcc中kf用户与cc用户的表导出expkf/zx@zxccfile=d:\\zxcc_ur.dmpowner=(kf,cc)full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。

3将数据库zxcc中的表kf_operator、kf_role导出expkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(kf_operator,kf_role)tables=xx表示备份相关表,不能同时和owner、full使用。

4将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出expkf/zx@zxccfile=d:\\zxcc_t.dmptables=(kf_operator)query=\\"whereop er_idlike"00%"\\"query主要是导出合适条件的数据。

oracle数据的导入导出(两种方法三种方式)

oracle数据的导⼊导出(两种⽅法三种⽅式)⼤概了解数据库中数据的导⼊导出。

在oracle中,导⼊导出数据的⽅法有两种,⼀种是使⽤cmd命令⾏的形式导⼊导出数据,另⼀种是使⽤PL/SQL⼯具导⼊导出数据。

1,使⽤cmd命令⾏导⼊导出数据 1.1整库导出 整库导出:exp 管理员账号/密码 full=y;//参数full表⽰整库导出。

导出后会在当前⽬录下⽣成⼀个EXPDAT.DMP的⽂件,此⽂件为备份⽂件。

如果想导出数据到指定位置,并且取个名字,需要添加file参数。

例如:exp system/123456 file= C:\person.dmp full=y。

1.2整库导⼊ 整库导⼊:imp 管理员账号/密码 full=y file=C:\person.dmp。

1.3使⽤cmd命令按⽤户导出导⼊ 1.3.1 按⽤户导出:exp 管理员账号/密码 owner=⽤户名 file=C:\person.dmp。

1.3.2 按⽤户导⼊:imp 管理员账号/密码 file=C:\person.dmp fromuser=⽤户名。

1.4使⽤cmd命令按表导出导⼊ 1.4.1按表导出:exp 管理员账号/密码 file=person.dmp tables=t_person,t_student。

1.4.2按表导⼊:imp 管理员账号/密码 file =person.dmp tables=t_person,t_student。

2.)使⽤PL/SQL 开发⼯具导出导⼊数据 pl/sql⼯具包含三种⽅式导出oracle表结构和表数据,分别为:oracle export,SQL inserts,pl/sql developer。

它们的含义如下: 第⼀种oracle export:导出的是.dmp格式的⽂件,.dmp⽂件是⼆进制⽂件,可以跨平台,包含权限等。

第⼆种SQL inserts :导出的是.sql格式的⽂件,可以⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量的导⼊导出。

oracle的导出命令

oracle的导出命令资料来⾃百度搜索,测试全库备份正常导出。

常⽤的oracle数据库备份(导⼊/导出)有两种,分别是exp/imp和expd/impd,前者是Orace早期版本带有的导⼊导出⼯具,后者是Oracle10g后出现的,下⾯进⾏分别介绍!1.exp/imp三种导⼊导出类型Oracle⽀持三种导⼊导出类型分别是表⽅式(T⽅式),⽤户⽅式(U⽅式),全库⽅式(Full⽅式)A: 表⽅式(T⽅式)备份(exp)某个⽤户模式下指定的对象(表),exp guwei/ai123456@10.21.19.63/orcl rows=y indexes=n compress=n buffer=50000000 file=exp_table.dmplog=exp_table.log tables=USER_INFO,POLICY_INFO恢复(imp)备份数据中的指定表,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log tables=USER_INFO,POLICY_INFOB:⽤户⽅式(U⽅式)备份(exp)某个⽤户模式下的所有对象,exp jnth/thpassword@oracle owner=guwei rows=y indexes=n compress=n buffer=50000000 file=exp_table.dmp log=exp_table.log恢复(imp)备份数据的全部内容,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log恢复(imp)备份数据中的指定表,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log tables=USER_INFO,POLICY_INFOC:全库⽅式(Full⽅式)备份(exp)完整的数据库,exp system/systempassword@oracle rows=y indexes=n compress=n buffer=50000000 full=y file=exp_table.dmp log=exp_table.log导⼊(imp)完整数据库,imp system/systempassword@oracle rows=y indexes=n commit=y buffer=50000000 ignore=y full=y file=exp_table.dmp log=exp_table.log 导出导⼊的优缺点优点:简单易⾏;可靠性⾼;不影响数据库的正常运⾏。

oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)

oracle数据库导出和oracle导⼊数据的⼆种⽅法(oracle导⼊导出数据)⽅法⼀:利⽤PL/SQL Developer⼯具导出:菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可:⽅法⼆:利⽤cmd的操作命令导出,详情如下:1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN⽬录下有个tnsname.ora⽂件,内容如下:复制代码代码如下:CMSTAR =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = cmstar)))其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上⾯的例⼦⼿动添加数据录连接。

2:⽤cmd进⼊命令⾏输⼊:tnsping cmstar就是测试172.18.13.200是否连接成功3:导⼊与导出,如下:数据导出:1 将数据库TEST完全导出,⽤户名system 密码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2将数据库中system⽤户与sys⽤户的表导出expsystem/manager@TESTfile=d:\daochu.dmpowner=(system,sys)3将数据库中的表table1、table2导出expsystem/manager@TESTfile=d:\daochu.dmptables=(table1,table2)4将数据库中的表table1中的字段filed1以"00"打头的数据导出expsystem/manager@TESTfile=d:\daochu.dmptables=(table1)query=\"wherefiled1like'00%'\"上⾯是常⽤的导出,对于压缩我不太在意,⽤winzip把dmp⽂件可以很好的压缩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档