sqluldr2和sqlldr配合导入导出带有clob字段的问题

ifvlr 2017-02-15 03:55:20
各位好,我在windows环境下用sqluldr2导出一个表,表中带有clob字段,并且clob字段中有部分数据是有回车换行符号在里面的。在sqluldr2的命令中加上table 会自动帮我生成ctl控制文件。但是当我用sqlldr导入时,就各种报错。当然,只导入带有clob字段的表才报错,其他情况好像不报错。


desc M_AM_M_RISKTARGET
risktargetid varchar2(255)
risktargetname varchar2(255)
risktargetdesc clob
risktargettype varchar2(255)
ratio varchar2(255)
auditstate varchar2(128)
modifystate varchar2(128)
estatus char(1)
eversion integer
sourceid varchar2(255)
processinstid varchar2(255)
iscurrentversion char(1)
versiontime timestamp(6)

比如M_AM_M_RISKTARGET 表中有个字段叫RISKTARGETDESC,对于clob类型的字段,sqluldr2生成的控制文件为如下两个。

"LOBF_RISKTARGETDESC" FILLER CHAR(30) ,
"RISKTARGETDESC" LOBFILE("LOBF_RISKTARGETDESC") TERMINATED BY EOF,

然后导入时,就会报错

报错为

SQL*Loader-462: 将 LOB 插入列 "RISKTARGETDESC", 行 6, 表 M_AM_M_RISKTARGET 中时出错
SQL*Loader-646: 列 "RISKTARGETDESC", 行 6, 表 M_AM_M_RISKTARGET 中的 lob 被设置为 EMPTY
SQL*Loader-462: 将 LOB 插入列 "RISKTARGETDESC", 行 7, 表 M_AM_M_RISKTARGET 中时出错
SQL*Loader-646: 列 "RISKTARGETDESC", 行 7, 表 M_AM_M_RISKTARGET 中的 lob 被设置为 EMPTY
SQL*Loader-502: 无法打开数据文件 '25' (在字段 "RISKTARGETDESC" 表 M_AM_M_RISKTARGET 中)
SQL*Loader-553: 未找到文件
SQL*Loader-509: 系统错误: 系统找不到指定的文件。


我的导入导出语句为如下 %%中的内容为传入的参数。可自己设置。

%bin_path%\sqluldr2.exe user=%source_conn% field=":|" table="m_am_m_risktarget" mode="TRUNCATE" file=D:\dwTobg_rap\m_am_m_risktarget.txt query="select * from m_am_m_risktarget t "
sqlldr USERID=%target_conn1% control=D:\dwTobg_rap\m_am_m_risktarget_sqlldr.ctl log=D:\dwTobg_rap\m_am_m_risktarget.log bad=D:\dwTobg_rap\m_am_m_risktarget.bad



如果大家对于我描述的内容不够明确,可以自己建一个带clob字段,并且该字段中有回车换行符,然后用sqluldr2
...全文
1943 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37947479 2018-11-28
  • 打赏
  • 举报
回复
你怎么导出clob的,我试过导出clob太大会报错?设置safe=yes也没用,请问你怎么解决的?
ifvlr 2017-02-15
  • 打赏
  • 举报
回复
引用 1 楼 ifvlr 的回复:
如果大家对于我描述的内容不够明确,可以自己建一个带clob字段的表,并且该字段中有回车换行符,然后用sqluldr2加上table参数导出,然后用sqlldr工具导入到新环境 1 如何保证数据能不报错导入。2如何保持和原表中一样的格式,包括原表中的回车换行符也要导入。
一楼漏了两个字。。
ifvlr 2017-02-15
  • 打赏
  • 举报
回复
如果大家对于我描述的内容不够明确,可以自己建一个带clob字段,并且该字段中有回车换行符,然后用sqluldr2加上table参数导出,然后用sqlldr工具导入到新环境,1 如何保证数据能不报错导入。2如何保持和原表中一样的格式,包括回车换行符。

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧