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 容器:
- 已下载官方资源(来自https://github.com/oracle/docker-images)
- 从中创建图像
- 创建了一个容器:
docker run --name $containerName -d -p 15210:1521 -e ORACLE_PWD=$dbPassword -v $dbVolume:/opt/oracle/oradata 'oracle/database:18.4.0-xe'
当我在容器中打开 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>
在 Docker 中 Windows 我安装了一个 Oracle DB 18c XE Linux Docker 容器:
- 已下载官方资源(来自https://github.com/oracle/docker-images)
- 从中创建图像
- 创建了一个容器:
docker run --name $containerName -d -p 15210:1521 -e ORACLE_PWD=$dbPassword -v $dbVolume:/opt/oracle/oradata 'oracle/database:18.4.0-xe'
当我在容器中打开 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>