Oracle 连接应该在SQL*PLUS脚本中工作吗?
我想从cron作业运行sqlplus脚本 我想我可以写一行这样的话:Oracle 连接应该在SQL*PLUS脚本中工作吗?,oracle,sqlplus,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命令的用法?在SQL*Plus内部运行co
CONNECT "myuser/mypass@mydb"
在脚本中,然后使用以下命令执行它:
sqlplus @myscript
但是,当我这样做时,我得到:
SP2-0306: Invalid Option
SP3-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
我是否误解了connect命令的用法?在
SQL*Plus
内部运行connect
时,请删除引号:
CONNECT myuser/mypass@mydb
如果要将凭据作为参数传递给sqlplus
,则需要使用双引号:
sqlplus "myuser/mypass@mydb"
,用于shell解析myuser/mypass@mydb
作为单个参数,如果您的连接标识符中有空格,或者使用附加选项,如SYSDBA使用/NOLOG选项
sqlplus /nolog @myscript
甲骨文11gR2
我通过sql*Plus运行了一个.sql文件,最初以JOHN的身份连接。在文件中,我以SYS连接,然后运行一个GRANT。请参见下面的.sql文件内容:
以sysdba身份连接sys/password
授予JOHN在DBMS_加密上执行的权限
连接JOHN/DOE
注意:顺便说一句,我不建议将sys/密码保存在文本文件中
HTH@Wade:它是否从具有相同凭据的命令行连接?@Wade:是否只有在
cron
下运行时脚本才会失败?你能把连接到我的用户吗/mypass@mydb
导入文件.sql
并运行sqlplus/nolog@file.sql
?我还没有在cron下运行它。你所描述的就是我正在做的。然而,关键的区别是我没有使用/nolog选项。有了这个选项,它就可以工作了。谢谢你的帮助。