Sample Header Ad - 728x90

SQL*Plus 18/19 on Windows: Cannot access SQL scripts

0 votes
0 answers
176 views
I have this very strange observation on my Windows 10x64 machine: Given the following script file (file name test.sql):
DEFINE SYS_NAME = &1
DEFINE SYS_PWD = &2
DEFINE ORACLE_HOME = &3

CONNECT &SYS_NAME/&SYS_PWD@//localhost:1521/xe AS SYSDBA

SET VERIFY OFF
SET SERVEROUTPUT ON
-- SET FEEDBACK OFF

WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;

---- enable DBMS_OUTPUT ---------
ALTER SESSION SET CONTAINER=CDB$ROOT;
@&ORACLE_HOME/rdbms/admin/dbmsotpt.sql

---- run SQL scripts ---------
BEGIN
  DBMS_OUTPUT.PUT_LINE('Database script initialization finished.');
  DBMS_OUTPUT.PUT_LINE('');
  END;
  /

DISCONNECT

@aaaaaaaaaaaa

EXIT
When I call this script against my local Oracle DB 18.4 XE Windows installation with appropriate arguments, like:
sqlplus -S /nolog '@C:\Temp\sql\test.sql' sys *** 'C:\app\Me\product\18.0.0\dbhomeXE'
Using **SQL*Plus 19.11.0.0.0** I get this output (translated from German):
Session changed.

OS Message: No such file or directory
Using **SQL*Plus 18.4.0.0.0** I get this output (again, translated from German):
Session changed.


Session changed.


Type created.


Package created.


Synonym created.


Synonym created.


User access granted.


User access granted.


Session changed.

Database script initialization finished.

PL/SQL Procedure successfully finished.
So, using **SQL*Plus 19.11.0.0.0**, neither the built-in SQL Script nor my script (@aaaaaaaaaaaa for demonstration purposes) is getting called. Using **SQL*Plus 18.4.0.0.0**, the built-in SQL Script seems to be getting called, but my script (@aaaaaaaaaaaa for demonstration purposes) is not getting called.
Why isn't this working? NB: The same script is working flawlessly when run in an Oracle 18c XE Linux Docker container.
Asked by AxD (133 rep)
Jul 20, 2021, 07:59 PM
Last activity: Jul 20, 2021, 09:36 PM