【问题标题】:Double quotes in the in the data loaded through SQL loader通过 SQL loader 加载的数据中的双引号
【发布时间】:2011-12-30 07:33:58
【问题描述】:

我在通过 SQL 加载器将数据加载到 Oracle 表时遇到问题。

问题是插入的值被双引号括起来。

示例:

"917681904           "
"914481475            "
"935848150            "

问题在于 CHAR 字段,尤其是 CO_COMERCIAL_SERV。

它应该在没有双引号的情况下插入。我不知道这些双引号是从哪里添加的。 :(

我之前使用的控制文件是:

OPTIONS (SKIP = 1)
LOAD DATA CHARACTERSET WE8ISO8859P1

APPEND
PRESERVE BLANKS
INTO TABLE "TAB_SAVITHA"
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS

(
"NU_SECUE_PSCO",
"CO_CLIENT_COM",
"CO_PRSE",
"CO_COMERCIAL_SERV",
"CO_PROVINCIA_INST",
"NU_DURA_ANOS",
"IN_LINEA"
)

后来,我把列名周围的双引号去掉,如下所示。但还是同样的问题。

OPTIONS (SKIP = 1)
LOAD DATA CHARACTERSET WE8ISO8859P1

APPEND
PRESERVE BLANKS
INTO TABLE "TAB_SAVITHA"
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS

(
NU_SECUE_PSCO,
CO_CLIENT_COM,
CO_PRSE,
CO_COMERCIAL_SERV,
CO_PROVINCIA_INST,
NU_DURA_ANOS,
IN_LINEA
)

用于加载数据的shell脚本如下::

cat<<EOD >PBPS.sql 
set linesize 800
set pagesize 3000
set heading off
set feed off

select NU_SECUE_PSCO||'|'||CO_CLIENT_COM||'|'||CO_PRSE||'|'||CO_COMERCIAL_SERV||'|'||CO_PROVINCIA_INST||'|'||NU_DURA_ANOS||'|'||IN_LINEA||'|' FROM PBPS_BKP WHERE HITO =$vpin;

exit
EOD


sqlplus -s $1/$2@$3 @PBPS.sql > PBPS.dat

sqlldr $1/$2@$3 control='./sqlloader/Main.ctl'
rm -f PBPS.sql

我急需帮助。

非常感谢任何帮助。

谢谢, 萨维塔

【问题讨论】:

    标签: sql-loader


    【解决方案1】:

    试试这个,看看它是否有效。

    FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
    

    【讨论】:

    • 那是双引号括在单引号中。
    • 不,那没用。实际上,原始数据意味着我从中挑选数据的地方没有双引号。它被附加在两者之间。甚至它写入的数据文件(PBPS.dat)也没有显示出来。
    • 是的。这适用于包含特殊字符的字符串。
    【解决方案2】:

    我遇到了同样的问题。 经过调查,我发现这个问题实际上是由于字符串中的特殊字符造成的。 首先替换空格,然后只剩下那个特殊字符。 我不确定该字符是如何进入字符串的,但您可以从 sqldeveloper 等复制该字符并在替换函数中使用该字符从表列中删除该字符。

    【讨论】:

      【解决方案3】:

      我也有同样的问题。这是由于我的输入文件从 Windows 到 Linux 的文件文本转换。

      执行以下命令解决了这个问题:

      dos2unix /myInputFile.dat
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多