首页 文章

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

提问于
浏览
3

我试图将批处理文件放在一起,只是执行我的.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

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

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

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

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

相关问题