【发布时间】: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