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
Why isn't this working? NB: The same script is working flawlessly when run in an Oracle 18c XE Linux Docker container.
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
Last activity: Jul 20, 2021, 09:36 PM