我有一个包含oracle db用户名和密码的db.txt
oracle_user=username
oracle_password=password
然后我有一个shell脚本mytest.sh来调用db.txt中的用户名和密码。存储到变量并通过sqlplus运行test.sql文件
#!/bin/sh
. db.txt
SCRIPT_HOME=/myhome/mytest
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome
ORACLE_SID=mysid
ORACLE_USER=$oracle_user
ORACLE_PASSWORD=$oracle_password
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_USER ORACLE_PASSWORD;
SQL=$SCRIPT_HOME/test.sql
$ORACLE_HOME/bin/sqlplus $ORACLE_USER/$ORACLE_PASSWORD@$ORACLE_SID @$SQL
但是当我运行mytest.sh时,它会返回
ERROR:
ORA-01017:用户名/密码无效;登录被拒绝
从文本文件中读取的变量是不是直接放入sqlplus命令?
答案 0 :(得分:0)
乍一看脚本看起来不错。
你确定证书是正确的吗?
2.您可以在调用sqlplus之前echo "$ORACLE_USER/$ORACLE_PASSWORD"
确保传递有效的详细信息