暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle SQLLDR在控制文件中指定为填充文件的数据上失败

askTom 2017-02-14
288

问题描述

我有一个sqlldr控制文件,看起来像这样

名称char(255) 由 '"' 括起来,
contactemail char(255) 用 “” 表示,
rawtext1填充物由 “” 包围,
rawtext2填充物由 “” 包围,
审计日期char(255) 由 '“' 括起来

我的csv文件,其中包含每个字段的数据用引号和逗号分隔。
当我运行sqlldr时,加载错误出来,日志文件包含以下内容:

记录 ###: 拒绝-表测试中的错误,列rawtext1。
数据文件中的字段超过最大长度。

我尝试为rawtext列创建带有Varchar2(4000) 长度列的测试表,并且尝试将它们创建为clobs。两者都没有区别。

我做错了什么?

特里

专家解答

除非在控制文件中指定,否则 * controlfile * 中的字符串字段被假定为长度255。我们不会自动将字段链接到它们匹配的数据库列。

所以

用 '“” 括起来的col

相当于:

col char(255) 用 '“” 括起来

which will reject the row if its longer than 255. 所以just add (say) "char(2000)" in the controlfile where appropriate.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论