sql loader导入数据时的问题
sql loader导入数据时的问题
在使用oracle sql loader 工具导入数据时遇到的问题,具体的shell脚本如下:
01
#!/bin/bash
02
03
04
export LANG=zh_CN.GBK
05
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
06
export ORACLE_BASE=/u01/oracle
07
export ORACLE_HOME=/u01/oracle
08
09
10
export PATH="$PATH:$ORACLE_BASE:$ORACLE_HOME:$ORACLE_SID:
11
12
$ORACLE_HOME/bin"
13
14
15
SQLLDR="/u01/oracle/bin/sqlldr"
16
ORACLE_USER="username"
17
ORACLE_PWD="password"
18
ORACLE_SID="orcl"
19
20
21
CTL_FILE="/home/***/test/test.ctl"
22
DATA_FILE="/home/***/test/test.txt"
23
LOG_FILE="/home/***/test/test.log"
24
BAD_FILE="/home/***/test/test.bad"
25
26
27
"$SQLLDR" "$ORACLE_USER"/"$ORACLE_PWD"@"$ORACLE_SID"
28
29
control="$CTL_FILE" data="$DATA_FILE" direct=true BAD="$BAD_FILE"
30
31
log="$LOG_FILE" 2>&1
问题一:
SQL*Loader-704: Internal error: ulconnect: OCIServerAttach [0]
ORA-12532: TNS:invalid argument
原因:数据库sid路径问题
解决方法:将Oracle的sid配置为localhost:端口号/sid名称 ,必须明确指明数据库的地址和端口号
问题二:
ORA-12705: Cannot access NLS data files or invalid environment specified
原因:NLS_LANG配置不正确,可能是NLS_LANG不存在或者书写错误,由于本人在
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK中将AMERICAN_AMERICA.ZHS16GBK
写成AMERICAN_AMERICAN.ZHS16GBK,才报以上错误