CONNECT应该在SQL * PLUS脚本中工作吗?

时间:2010-01-28 16:55:28

标签: oracle sqlplus

我想从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命令的用法?

3 个答案:

答案 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