在使用oracle sql loader 工具导入数据时遇到的问题,具体的shell脚本如下:
#!/bin/bash
export LANG=zh_CN.GBK
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle
export PATH="$PATH:$ORACLE_BASE:$ORACLE_HOME:$ORACLE_SID:
$ORACLE_HOME/bin"
SQLLDR="/u01/oracle/bin/sqlldr"
ORACLE_USER="username"
ORACLE_PWD="password"
ORACLE_SID="orcl"
CTL_FILE="/home/***/test/test.ctl"
DATA_FILE="/home/***/test/test.txt"
LOG_FILE="/home/***/test/test.log"
BAD_FILE="/home/***/test/test.bad"
"$SQLLDR" "$ORACLE_USER"/"$ORACLE_PWD"@"$ORACLE_SID"
control="$CTL_FILE" data="$DATA_FILE" direct=true BAD="$BAD_FILE"
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,才报以上错误
来源:oschina
链接:https://my.oschina.net/u/915755/blog/142907