使用 Oracle SQL*Loader,我试图将另一个数据库中的可变长度字符串 (lob) 列加载到 Oracle 中的 varchar2(4000) 列中。我们有超过 4000 个字符的字符串,但每个人都同意这些字符串可以而且应该在迁移中被截断(我们已经查看了超过 4000 个字符的数据,它没有意义)。为此,我在控制文件中以这种方式指定了该列:
COMMENTS CHAR(65535) "SUBSTR(:COMMENTS, 1, 4000)",
但是,SQL*Loader 仍然拒绝数据文件中这条记录超过 4000 个字符的任何行:
记录 6484:拒绝 - 表 LOG_COMMENT 列 COMMENTS 上的错误。ORA-12899: COMMENTS 列的值太大(实际值:11477,最大值:4000)
记录 31994:拒绝 - 表 LOG_COMMENT 列 COMMENTS 上的错误。ORA-12899: COMMENTS 列的值太大(实际值:16212,最大值:4000)
记录 44063:拒绝 - 表 LOG_COMMENT 列 COMMENTS 上的错误。ORA-12899: COMMENTS 列的值太大(实际值:62433,最大值:4000)
我尝试采用更小的子字符串,但仍然出现相同的错误。如何更改我的控制文件以将超过 4000 个字符的字符串数据截断为 varchar2(4000) 列?