从Shell脚本中的另一个目录运行SQL脚本

时间:2019-02-08 07:25:25

标签: shell unix

在UNIX Shell脚本中,我位于一个目录@ReadOperation中,然后在我连接到ex:- cd /usr/was/scr以登录数据库以运行SQL脚本文件 xyz.sql 后,来自不同的目录位置SQLPLUS。登录数据库后如何执行 xyz.sql 。这是示例代码。

ex:- /usr/was/abcd

xyz.sql 文件位于cd /usr/was/scr sqlplus -s <schema>/<user>@<tns> << EOF exec xyz.sql spool xyz.log exit; EOF 目录中。

1 个答案:

答案 0 :(得分:1)

如果您是从脚本中调用此方法,那么我认为最安全的方法是首先指定路径:

sqlpluspath=/usr/was/scr        #or "${ORACLE_HOME}/bin" or wherever it is if not in $PATH 
spoolfile=/usr/was/scr/xyz.log  #spool file
PATH="${PATH}:$sqlpluspath" \
SQLPATH="${SQLPATH}:/usr/was/abcd" \
sqlplus -s <schema>/<user>@<tns> << EOF
spool $spoolfile
@xyz.sql
exit;
EOF