关于oracle中blob字段的录入问题
在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。
下面是对lob数据类型的简单介绍。
blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。
clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。
bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。
nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。
对于在其他不同的开发环境,例如vc,vb,pb,java等环境下对lob的处理,处理方法不尽相同,在这里将举用jdbc处理lob的例子
String strSQL = "Insert Into BKS_XSZPXX(XH,ZPLXM,ZP) Values('3071801040','1',empty_blob())";
updateTable1(strSQL,conn);
conn.setAutoCommit(false);
strSQL = "Select ZP from BKS_XSZPXX where XH='3071801040' For Update";
Statement stmt = null;
ResultSet rs = null;
stmt = conn.createStatement();
rs = stmt.executeQuery(strSQL);
rs.next();
BLOB blob = (BLOB) rs.getBlob("ZP");
OutputStream os = blob.getBinaryOutputStream();// 建立输出流
BufferedOutputStream output = new BufferedOutputStream(os);
BufferedInputStream input = new BufferedInputStream(new File("F:/3071801040.jpg").toURL().openStream());
byte[] buff = new byte[2048000]; //用做文件写入的缓冲
int bytesRead;
while(-1 != (bytesRead = input.read(buff, 0, buff.length)))
{
output.write(buff, 0, bytesRead);
//System.out.println(bytesRead);
}
output.close();
input.close();
rs.close();
conn.commit();
conn.setAutoCommit(true);
stmt.close();
相关文档:
大型项目开发中,常用的数据库,当属Oracle。但Oracle
客户端安装就要一张光盘,体积很大。而且安装后,基本上就用2个功能:TNS配置服务名,SqlPlus。在开发过程中,大量使用Toad和PL/SQL
Developer。因此,Oracle客户端安装盘,仅仅是被作为一个驱动而需要,根本没必要装那么大的空间。因此,本文给出了如何使用精简的
......
《oracle大型数据库系统在AIX/unix上的实战详解》集中讨论34:在AIX环境下实施Oracle 集群RAC的结构 文平 看来能用的起IBM p服务器的用户,都能用的起RAC.大家纷纷来信探讨在AIX上实施RAC的一些问题,大多数问题集中的构架上. 这里我开一个专题集中讨论之! 从Oracle 9i开始,Oracle推出真正应用集群Rea ......
本文介绍了使用Pro*C/C++在Visual
C++环境下开发Oracle数据库接口程序的方法
设计思路其实这样:首先通过VC建立一个工程,自动化建立MAKEFILE,UNIX需要自己写MAKEFILE。
其次配置VC的环境,将PROC的.H,.LIB的路径加入DERECTIRY。写一个PC文件,即PROC文件。放到工程相应的目录下。然后把PC文件加入工程。使用PROCUI.E ......
ORACLE PL/SQL与SQL SERVER T-SQL一些比较
字符串连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ 。
Oracle查询如下所示:Select ‘Name’ || ‘Last Name’ from tableName
SQL Server查询如下:Select ‘Name’ + ‘Last Name’
GUID
Oracle用SYS_GUID ......