我很勉强从Windows .bat文件传递PL / SQL脚本的参数。
以下是批处理文件的内容:
@echo off
set mName = "test"
exit | sqlplus <connection_string> @test.sql %mName%
pause
以下是test.sql的内容:
set verify off
set serveroutput on size unlimited
BEGIN
DBMS_OUTPUT.PUT_LINE('&&1');
END;
/
我希望在shell中看到“test”,但我得到以下消息:
Enter value for 1:
SP2-0546: User requested Interrupt or EOF detected.
有没有人能解决这个问题?
答案 0 :(得分:3)
删除=
符号周围的空格。这是我的工作批处理文件:
@echo off
set mName="test"
exit | sqlplus <connection_string> @test.sql %mName%
pause
另请注意,您可以使用sqlplus上的-L
选项进行批处理作业:
-L
尝试只登录一次,而不是在错误时重新登录。