oracle ldr 到处,oracle - 从SQLoader到外部表[Oracle] - 堆栈内存溢出

目前,我有一些平面文件,这些文件通过SQLoader加载到DB中,但是我想用外部表替换SQLoader脚本,但是在将SQLoader“转换”为外部表时遇到了问题。

因此,例如,我有一个平面文件,如下所示:

~#~col1>|col2>|col3...

我有一个SQloader .ctl文件,看起来像这样:

LOAD DATA

APPEND

CONTINUEIF NEXT PRESERVE (1:3) <> '~#~'

INTO TABLE my_tab

FIELDS TERMINATED BY ">|" TRAILING NULLCOLS

(

col1 "LTRIM(Trim(:col1),'~#~')",

col2 "TRIM(:col2)",

col3 "TRIM(:col3)",

col4 CONSTANT #$TASKID$#,

col5 CONSTANT #$SESSION$#,

col6 RECNUM,

col7 SEQUENCE(MAX)

)

目前,我已经尝试了很多东西-

create table my_tab(

col1 varchar2(100)

,col2 number(38)

,col3 number(38)

,...

)

organization external(

type oracle_loader

default directory my_dir

access parameters(

records delimited by newline

fields terminated by '>|'

missing field values are null

reject rows with all null fields

)

location('my_file.txt')

);

所以我有以下问题:

定义外部表时如何调用TRIM函数? (甚至有可能吗?)还是唯一的方法是为数据登台创建另一个视图/表,然后进行所有数据转换,然后将数据插入目标表?

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值