Discussions
Categories
- 197K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.8K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 556 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.4K SQL Developer
- 296.3K Development
- 17 Developer Projects
- 139 Programming Languages
- 293K Development Tools
- 110 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 158 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 468 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
SQL*Plus 18/19 on Windows: Cannot access SQL scripts

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/&[email protected]//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.