Backslash36
Backslash36

Reputation: 805

Launch PL/SQL script from batch file (with arguments)

I'm strugling at passing arguments to a PL/SQL script from a Windows .bat file.

Here is the content of the batch file :

@echo off
set mName = "test"
exit | sqlplus <connection_string> @test.sql %mName%
pause

And here is the content of test.sql :

set verify off
set serveroutput on size unlimited
BEGIN
  DBMS_OUTPUT.PUT_LINE('&&1');
END;
/

I would expect to see "test" appearing in the shell but instead, I get the following message :

Enter value for 1:
SP2-0546: User requested Interrupt or EOF detected.

Does anyone have a solution to this problem ?

Upvotes: 1

Views: 8083

Answers (1)

Vincent Malgrat
Vincent Malgrat

Reputation: 67752

Remove the spaces around your = sign. Here's my working batch file:

@echo off
set mName="test"
exit | sqlplus <connection_string> @test.sql %mName%
pause

Also note that you can use the -L option on sqlplus for batch jobs:

-L Attempts to log on just once, instead of reprompting on error.

Upvotes: 3

Related Questions