批处理脚本登录sqlplus参数
Posted
技术标签:
【中文标题】批处理脚本登录sqlplus参数【英文标题】:batch script login sqlplus parameters 【发布时间】:2014-01-15 14:07:03 【问题描述】:我在使用批处理文件中的 sqlplus 连接数据库时遇到了一些问题。 我正在尝试创建一个提示输入服务器/服务名称、用户名和密码的批处理脚本。 它看起来像这样:
set /P ORCL=Enter server or service_name:
set /P UN=Enter DB User:
set /P PWD=Enter password for DB user:
sqlplus %UN%/%PWD%@ORCL @.\File_to_run.sql
...
我不是在本地使用 TNS,而是使用 machinename 连接,如下所示:
username/password@machinename:1521/service_name
当我通过 cmd 提示符启动 sqlplus 时,这工作得很好,但在我运行这个 bat 文件时却不行。它说用户名或密码错误并提示输入用户名和密码...
我认为当放入sqlplus的参数列表时可能是ORCL变量。但我试过这样引用它:
...
sqlplus %UN%/%PWD%"@ORCL" @.\File_to_run.sql
和
sqlplus %UN%/%PWD%@"ORCL" @.\File_to_run.sql
但是没有成功... 如果我尝试相同的方法,但不是使用“AS sysdba”和相应的用户名和密码而不是@service_name/_string,它会正常工作。 有谁知道如何解决这个问题?
BR 粮农组织
【问题讨论】:
【参考方案1】:最后一个参数也请使用百分号。喜欢:
sqlplus "%UN%/%PWD%@%ORCL%" @.\File_to_run.sql
我不确定为什么在 .\File_to_run.sql 之前需要 @ 符号...
【讨论】:
我的错误...我使用百分号 :-) 像这样: sqlplus %UN%/%PWD%@%ORCL% @.\file.sql 文件前的@ run 是 sqlplus 特定的符号,所以它必须在那里:-) 上面的代码能解决你的问题吗?请注意第一个参数是双引号。您需要为 ORCL 输入输入 'machinename:1521/service_name' 值。以上是关于批处理脚本登录sqlplus参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 SqlPlus 执行 Oracle 脚本;如果有任何异常,在脚本处理之前进入状态