通过运行批处理文件来执行SQL文件

时间:2015-07-30 15:24:57

标签: sql oracle batch-file cmd

我正在尝试将批处理文件放在一起,以简单地执行我拥有的.sql文件。我在批处理中使用的代码是:

REM JOB.BAT

SQLPLUS -S username/password@db @C:\Users\username\Desktop\testsql.sql


EXIT

我收到错误:

“错误:ORA-12154:TNS:无法解析指定的连接标识符”

我认为问题是我的密码包含@符号,所以它开始在密码中间读取远程数据库名称,而不是只读取'db'。因此,如果我的密码是“p @ ssword”,它正在寻找一个名为“ssword @ db”的数据库,它不存在。

是否有一个简短的方法或者更改我的密码是唯一的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要引用密码字符串,使用适合您的操作系统的任何内容。看起来你正在使用Windows,所以,试试这个:

SQLPLUS -S username/'password'@db @C:\Users\username\Desktop\testsql.sql

答案 1 :(得分:0)

如果您没有正确设置TNS,您只需显式调用数据库:

sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'