【发布时间】:2019-11-04 14:23:06
【问题描述】:
我正在运行 unix 脚本,它执行 SQL 命令来获取报告,因为我在 tnsnames.ora 中没有条目,我在 sqlplus 命令和 sqlfile 中给出了门户的完整描述。当我尝试运行脚本时,控件会被触发。
我使用sqlplus -s 选项来静音用户名和密码的提示。
我用ksh -x myscript.ksh 运行脚本,当脚本被触发时,我复制了 sqlplus 行并独立运行它,它工作正常。
$ORACLE_HOME/sqlplus -S 'username/password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=
(COMMUNITY=tcp.world)(PROTOCOL=TCP)(Host=umyhostname)(Port=1599)))
(CONNECT_DATA=(SID=idb)))' @/usr/local/myrpt.sql
【问题讨论】:
-
尝试不使用
-S,可能会看到错误消息。 -
您的描述中有换行符吗?试试
$ORACLE_HOME/sqlplus -S username/password@"(DESCRIPTION=...)))" -
您是否有理由不简单地将描述放入您的
tnsnames.ora文件中? -
更改为“sqlplus -s”并指向正确的 $ORACLE_HOME 后问题已解决。
标签: bash oracle unix sqlplus tnsnames