我用一个过程通过databaselink 从远程oracle9i数据库用for loop ...end loop隐式游标处理longrow类型数据,insert到本地oracle10g的一个表里的blob字段中,处理到20多万条记录时报了ora-01406的错误,但是把此条记录跳过后还能再转一部分数据,然后又报错了!后来,等下班后9i上的系统业务办理停止了,又跑了一遍过程,结果转到70多万又出错了,又跳着转,但是这样太费劲了,要跳好多次,几十万的数据这样处理肯定不行,于是我狠心一个月一个月的跳着转(这样有点很不负责任,但是每办法了,施工现场没办法上网求助!),最后竟然从06年4月到12月的数据里有些转不进去,从07年至今的数据还好只有一条转不进去,跳过了他!---------------
系统信息:
ORA-01406: 读取的列值被截断
在执行S_DBA01_GCYC过程时,执行到JH=STT763RQ=12-3月 -05时:
原因:
在宿主语言程序中,FETCH(取值)操作被迫截断一字符串。程序缓冲区对此列来说不够大,不能放下全部的字符串。游标(cursor)返回的值为+3
措施:
增大列缓冲区以放下最大的列值。或者进行适当的处理
----------------------------------
看了oracle 提供的上述错误信息,没什么帮助!还有公司同事说也遇到类似问题,猜测是不是oracle9i到10g的问题,但是我在现场试过了,把存储过程和database link 迁移到9i的数据库上,还是不行!现在我想求助高手来帮忙了!
系统信息:
ORA-01406: 读取的列值被截断
在执行S_DBA01_GCYC过程时,执行到JH=STT763RQ=12-3月 -05时:
原因:
在宿主语言程序中,FETCH(取值)操作被迫截断一字符串。程序缓冲区对此列来说不够大,不能放下全部的字符串。游标(cursor)返回的值为+3
措施:
增大列缓冲区以放下最大的列值。或者进行适当的处理
----------------------------------
看了oracle 提供的上述错误信息,没什么帮助!还有公司同事说也遇到类似问题,猜测是不是oracle9i到10g的问题,但是我在现场试过了,把存储过程和database link 迁移到9i的数据库上,还是不行!现在我想求助高手来帮忙了!
解决方案 »
- 关于查询问题,求SQL
- 数据库不能启动ora-01092错误 请指点等待中...
- 高手请指教,如何将mssqlserver2000里的一张表里的记录全部导入到oracle9i里的一张表里?
- 很简单,很快结贴的问题,Oracle如何更新date类型的字段?
- jsp连接Oracle 除用thin模式以外 还有什么
- 请教关于job的工作机制的问题?
- 求一sql语句(来者有分)
- ORACLE初学者,想进一步提高,请帮助!!!!!
- 请问如何在ORACLE 存储过程中设置回滚断点?
- 请各位老大帮忙解释一下这段程序!
- 关于ORA_12560:TNS:协议适配器错误
- 协议适配器错误~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用别的方法导吧
这里源数据库(9i)中是照片表Longrow类型字段,目标库(10g)中照片表BLOB字段,
这肯定和字段长度定义没关系!
倒是有人说可能需要打补丁,但是,我找不到相关资料!