SP2-0310:无法从 Docker 中的 Oracle DB 18c 为 Windows 容器打开文件 "LOGIN.SQL"

SP2-0310: unable to open file "LOGIN.SQL" from Oracle DB 18c in Docker for Windows container

在 Docker 中 Windows 我安装了一个 Oracle DB 18c XE Linux Docker 容器:

当我在容器中打开 SQL*Plus 时,一切正常:

> docker exec -it DevDB sqlplus sys/pwd@//localhost:1521/xe as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Fri May 21 19:47:10 2021
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>

在我的 Windows 主机中,我安装了 SQLPlus Instant Client。当我从那里 运行 SQL*Plus 时,我收到一条警告消息,告诉我无法打开“LOGIN.SQL”。

不过,我好像可以运行查询:

> sqlplus sys/pwd@//localhost:15210/xe as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Fri May 21 21:34:58 2021
Version 18.5.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SP2-0310: unable to open file "LOGIN.SQL"
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>

是什么原因导致此警告消息?我怎样才能摆脱它?


经过更多测试后,我现在找到了问题的答案:

显然,报告的错误是 SQL*Plus.

18.5.0.0 版本中的一个故障

我刚刚更新了 SQL*Plus 到 19.11.0.0,警告信息消失了:

> sqlplus sys/pwd@//localhost:15210/xe as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 21 21:53:11 2021
Version 19.11.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>