This Domain(Admin5.com) is for Sale:

ORACLE自带的JDBC源代码解析

时间:2007-12-23  来源:不详  作者:迈克DB

6、RefClient.java与GenREF.java
ThissampledemonstratesusingREFovertwodifferentSessions.
类GenREF用来封装REF对象所指向的类型及其二进制内容。程序先MaterializeintoGenREF,然后在另一会话中De-materializeREFfromGenREF,下面就与处理REF相同:利用此对象的getValue()并转换成STRUCT对象,再利用此对象的getAttributes()方法得到Object[],然后对此数组操作即可。
7、FileExample.java与PLSQL_FileExample.java
此示例使用BFILE数据类型,Containsalocator(定位器)toalargebinaryfilestoredoutsidethedatabase。数据插入时需要使用函数bfilename,这个函数需要目录对象,此对象需要使用createdirectorymydir来创建(此用户需具有CREATEANYDIRECTORY系统权限)。我曾在这个地方有个大教训:按着步骤做,可在读取时总是提示我没有此目录!!最后,我把BFILENAME函数的第一个参数(即目录名)大写就好了。原因:目录名在函数中区分大小写,虽然我们创建它时用的是小写,可到了数据库中后就自动变成了大写。
读取BFILE类型的数据时,首先通过其getBinaryStream()方法得到二进制的输入流,然后操作这个输入流就可以了。Thelimitationisyourimagination。
PLSQL_FileExample.java实现的功能与上述的相同,只不过所有针对BFILE的操作都是通过调用pl/sql匿名块来完成的,并使用了OracleCallableStatement。假如没有必要,使用前者即可。

织梦好,好织梦


8、LobExample.java与PLSQL_LobExample.java
此示例使用了CLOB和BLOB数据类型。
插入数据时,需要分别通过getBinaryOutputStream()和getCharacterOutputStream()得到二进制输出流和字符输出流,然后就是针对此输出流的操作了,与传统的javaI/O相同。
读取数据时,需要分别通过getBinaryStream()和getCharacterStream()得到二进制输入流和字符输入流,然后就是针对此输入流的操作了,与传统的javaI/O相同。
PLSQL_LobExample.java实现的功能与上述的相同,只不过所有针对CLOB和BLOB的操作都是通过调用pl/sql匿名块来完成的,并使用了OracleCallableStatement。假如没有必要,使用前者即可。

注:7、8的第二个示例中均使用到了dbms_lob程序包。

看完这篇,您有何感觉呢?

上一篇:linux下安装oracle9i   下一篇:说Oracle的MTS

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息