oracle cr lf,sql loader-带回车符的文件,换行加载到带有cr / lf的oracle中

我从sql server获取数据,其中大多数列中的数据都有回车符和换行符。我需要使用回车和换行将它们加载到oracle中;基本上我必须将sql server 2012的数据镜像到oracle 11g。

下面是我的提取文件的样本

[#BOR#] [#EOC#] 109 [#EOC#] 4 [#EOC#] testdata_Duplicate [#EOC#] testdata_Duplicate来自聊天[#EOC#]这个

carriage return field[#EOC]test2[#EOR#]

这里[#EOC#]是列分隔符,[#EOR#]是行分隔符。 [#BOR#]表示行的开头。最初我的加载失败是由于平面文件中的空行(数据提取)。然后我使用[#BOR#]和continueIf保留子句,以便sqlldr不会将空行(cr / lf)视为物理行。

使用[#BOR#]作为填充列,我的加载工作正常,但回车或换行不会加载到oracle表中。

我的ctl文件如下

load data

truncate

CONTINUEIF NEXT preserve (1:7) <> "[#BOR#]"

into table sch1.tbl1

fields terminated by '[#EOC#]'

trailing nullcols (

field filler,

a_id integer external,

h_id integer external,

title char(128),

descn char(4000),

risk char(4000),

comment char(4000) terminated by '[#EOR#]')

在oracle sch1.tbl1表中,列冒险的数据为“这是回车字段”而不是

“这

carriage return field'

我尝试用字符串[#crlf#]替换char(10)并在ctl中使用replace函数,如下所示

load data

truncate

CONTINUEIF NEXT preserve (1:7) <> "[#BOR#]"

into table sch1.tbl1

fields terminated by '[#EOC#]'

trailing nullcols (

field filler,

a_id integer external,

h_id integer external,

title char(128),

descn char(4000),

risk char(4000) "replace(:risk,[#crlf#],chr(10))"

comment char(4000) terminated by '[#EOR#]')

sql loader错误说明SQL * Loader-309:不允许SQL字符串作为字段规范的一部分;我相信因为我的列是CLOB数据类型,所以我无法使用替换函数。

请帮助我使用sqlloader将带有cr / lnFeed的sql server中的数据加载到oracle表中。提前谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值