技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Oracle --> 解决OCI LOB值的ORA-01405错误

解决OCI LOB值的ORA-01405错误

浏览:1396次  出处信息

       基于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年起, 完全免费使用.

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1