我正致力于将数据从MySQL迁移到Oracle。 MySQL输入数据集是通过MySQL数据转储提供的。 MySQL数据库中的空值写为" \ N" (在输出文件中没有引号)。
我正在使用sqlldr将数据导入Oracle和" \ N"映射到NUMBER数据类型的列中的值存在问题,因为Oracle认为它们是字符串。
如何告诉sqlldr输入数据集中的任何\ N值应该映射到Oracle中的Null?
感谢。
答案 0 :(得分:0)
您可以在控制文件中使用NULLIF。如果在该列中找到\ N,它将指定null。请参阅下面的语法。
<COLUMN_NUMBER> NULLIF <COLUMN_NUMBER> = '\\N'
答案 1 :(得分:0)
这对我有用。请注意,如果您使用的是基于unix的系统,则需要按如下方式对\ N进行转义:
...
COLUMN_NM CHAR(4000) NULLIF COLUMN_NM='\\N',
...