weblogic.jdbc.vendor.oracle.oraclethinclob,weblogic7可以操作Oracle9i的大字段,Weblogic8为什么不可以?...

ORACLE中,BLOB用于存取二进制文件,CLOB用来存取文本文件,而NBLOB用于存取多字节文件,我说的getBinaryStream只是用来存取二进制文件,CLOB为什么不用getAsciiStream?其实任何数据库的JDBC,如果不能用标准的JDBC接口(getXXX)来访问就不能叫JDBC,什么叫没有意义?而把对数据存取用特定的的厂商的数据类型来访问才有意义?我想不出这世界上还有这样的理论.

to axman :

你说的一点都没错,不过在实际上实现总是和设计有差距,从提供商角度上,可能有他们的考虑,事实对于oracle提供的thin driver 的JDBC实现,并没有对java.sql.Blob接口的getBinaryStream() 方法进行实现,他只是在自己的oracle.sql.BLOB 中进行了实现,这就是为什么我们会不能直接使用JDBC接口的问题,至于为什么会有“这样的理论”,oracle也许有他们的考虑,在随后的使用中我们当然也无法直接把一个JDBC 的BLOB对象转换为oracle.sql.BLOB,因为使用了weblogic的connection pool,weblogic对此在中间层进行了封装,这就是leejianwei 一开始出现的问题,为什么会这样,也许BEA考虑在pool层进行控制的原因,种种原因导致,我们在进行BLOB操作的时候,得难看地写出带有vender烙印的代码,当然这也造成了事实上的不可移植

to ral_lg :

你说的那个 BLOB操作,是否在自己的定义的UserTrasaction 块中 进行blob update 操作而产生 的java.io.IOException: ORA-22920错误?

你是否利用'SELECT ... FOR UPDATE' 来获得row locking.

To:chaowang

8.1中利用 Honor Global Transactions属性来区分 原来的 tx 和非TX datasource,默认是Honor Global Transactions Enable的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值