问题描述
嗨,汤姆。
我需要你的帮助。
我正在尝试使用sqlldr将数据加载到Oracle 11g数据库中。
我的数据有一个列,有时如下所示:
,"\" 台湾移动 \ "",
我的ctl有:
由 “,” 终止的字段
可选地由 '“'
我已经尝试了许多类型的replace和regexp_replace,我继续没有解决方案。
我的替换在SQL Developer中工作正常,但在SQLLDR中不起作用。
与replace和regexp_replace一起使用的替换示例:
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'"')”
无论如何,我在此列的错误文件中出现错误!
你能帮我吗?
我需要你的帮助。
我正在尝试使用sqlldr将数据加载到Oracle 11g数据库中。
我的数据有一个列,有时如下所示:
,"\" 台湾移动 \ "",
我的ctl有:
由 “,” 终止的字段
可选地由 '“'
我已经尝试了许多类型的replace和regexp_replace,我继续没有解决方案。
我的替换在SQL Developer中工作正常,但在SQLLDR中不起作用。
与replace和regexp_replace一起使用的替换示例:
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'\"')”
,列 “替换 (: 列,'"')”
无论如何,我在此列的错误文件中出现错误!
你能帮我吗?
专家解答
我会用一张外部表
SQL> CREATE TABLE t (
2 x VARCHAR2(50)
3 )
4 ORGANIZATION EXTERNAL (
5 TYPE ORACLE_LOADER
6 DEFAULT DIRECTORY temp
7 ACCESS PARAMETERS (
8 RECORDS DELIMITED BY NEWLINE
9 FIELDS TERMINATED BY ','
10 MISSING FIELD VALUES ARE NULL
11 (
12 x CHAR(50)
13 )
14 )
15 LOCATION ('t.dat')
16 );
Table created.
SQL>
SQL>
SQL> select * from t;
X
--------------------------------------------------
"\"Taiwan Mobile\""
SQL>
SQL> select replace(trim('"' from replace(x,'\"',chr(0) )),chr(0),'"')
2 from t;
REPLACE(TRIM('"'FROMREPLACE(X,'\"',CHR(0))),CHR(0)
--------------------------------------------------
"Taiwan Mobile"
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




