Bash - 错误ORA-01017:用户名/密码无效;登录被数组拒绝

时间:2013-05-15 08:58:34

标签: arrays oracle bash sqlplus

我有一个带有数组的shell,其中有一个oracle db的表列表。这是数组:

ListTabs=""
ListTabs=$ListTabs"T_Tab1\n"
ListTabs=$ListTabs"T_Tab2\n"
ListTabs=$ListTabs"T_Tab3"   
echo $ListTabs
arrArr=0
IFS=\n
for listArr in ${ListTabs[@]}; 
do 
     #echo $listArr
     MYDIR[${ARR}]=$listArr
     (( arrIdx = $ARR+ 1 ))
done

然后我有一个带有sqlplus连接的选择

sqlplus -S -L ${MYCONNCTIONDB} @${FILE_SQL}

当我尝试运行shell时,我收到错误:ORA-01017:用户名/密码无效;登录被拒绝。我确定连接是正确的,因为如果我删除了数组,那么shell运行良好。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于您的阵列,您正在设置IFS

IFS=\n

...这也将影响脚本后面的字符串解释。您可以在数组部分之后unset IFS,或者在设置临时变量之前将旧值存储在临时变量中(O_IFS=$IFS; IFS=\n)并在之后将其还原(IFS=$O_IFS; unset O_IFS)。