解决OCI LOB值的ORA-01405错误
基于OCI写的DataCopy(数据拷贝)与DataSync(数据同步)软件, 处理Lob类型的NULL值时一直都有问题, 会报ORA-01405错误, 导致去年丢失可以在正式场合(用于实时备份某地交通局的图片数据)使用的机会, 很是可惜. 最近关注这两个工具的人变多了, 再次向我报告了这个问题, 于是花了点时间去修改原来的代码, 终于搞定, 希望能找到一个正式使用的场景.
ORA-01405: fetched column value is NULL
Cause:The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you are running Oracle with DBMS=6, emulating version 6, in which case it is only a warning.
另外还修改了连接数据库的方式, 在Instant Client和Full Client的情况下及任何数据库版下, 都可以用以下格式连接数据库, 尽量为大家提供方便.
sqluldr2 scott/tiger@localhost:1521:db10g …
datacopy user=scott/tiger@localhost:1521:db10g …
datasync user=scott/tiger@localhost:1521:db10g …
再次简单地讲解一下这两个工具, DataCopy是一个不落地的Oracle之间数据对拷工具, 支持Long/Lob等数据类型(单值100MB以内), 并且速度上不比Exp/Imp工具差, 是一个很理想的Oracle数据迁移工具. DataSync是一个利用物化视图日志或触发器捕获增量变化数据, 进行准实时的数据同步/复制工具, 我们用这种机制在半小时内迁移过500GB的数据, 支持每秒钟上千次的变更压力, 并且同样支持Long/Lob等数据类型(单值100MB以内). 更重要的是, 这两个工具自2011年起, 完全免费使用.
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:anysql 来源: AnySQL.net
- 标签: 01405 OCI
- 发布时间:2011-03-30 13:58:44
- [67] Oracle MTS模式下 进程地址与会话信
- [65] 如何拿下简短的域名
- [65] Go Reflect 性能
- [59] 图书馆的世界纪录
- [59] android 开发入门
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] IOS安全–浅谈关于IOS加固的几种方法
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [46] 界面设计速成