我想从cron作业运行sqlplus脚本。
我以为我可以设置如下行:
CONNECT "myuser/mypass@mydb"
在脚本中然后只需执行:
sqlplus @myscript
然而,当我这样做时,我得到:
SP2-0306: Invalid Option
SP3-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
我是否误解了connect命令的用法?
答案 0 :(得分:0)
在CONNECT
内运行SQL*Plus
时,请删除引号:
CONNECT myuser/mypass@mydb
如果您将凭据作为参数传递给sqlplus
:
sqlplus "myuser/mypass@mydb"
,如果您的连接标识符中有空格或使用myuser/mypass@mydb
等其他选项,则shell会将AS SYSDBA
解析为单个参数。
答案 1 :(得分:0)
使用/ NOLOG选项。
sqlplus /nolog @myscript
答案 2 :(得分:0)
Oracle 11gR2
我通过最初连接为JOHN的SQL * Plus运行了一个.sql文件。在我作为SYS连接的文件中,然后运行GRANT。请参阅下面的.sql文件内容:
将sys / password连接为sysdba
授予DBMS_CRYPTO到JOHN的执行权;
连接JOHN / DOE
注意:我不建议将sys / password保存在文本文件btw中。
HTH