OSX用Homebrew装Oracle组件后sqlplus无法连Docker Oracle XE求助
安装背景
我尝试通过Homebrew在OSX上安装Oracle Instant Client和sqlplus,想确认此前参考的Mac安装Oracle Instant Client的指南是否仍有效。已执行以下安装命令:
brew tap InstantClientTap/instantclient brew install instantclient-basic brew install instantclient-sqlplus
连接异常情况
Oracle XE实例运行在本地Docker容器中:
- 容器内部使用sqlplus可正常登录SYSTEM账号;
- OSX主机上,SQLDeveloper、JDBC客户端(使用链接
jdbc:oracle:thin:@localhost:1521:XE)以及nodejs-oracledb均能正常连接数据库; - 但OSX主机上使用sqlplus连接时失败,先后出现两个错误:
初始登录错误
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 21 2022 13:34:43 2022
Version 19.8.0.0.0Copyright (c) 1982, 2020, Oracle. All rights reserved.
Enter user-name: SYSTEM
Enter password:
ERROR:
ORA-12162: TNS:net service name is incorrectly specified
设置环境变量后的错误
查询后设置环境变量 export ORACLE_SID=XE,再次登录出现新错误:
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 21 2022 13:40:25 2022
Version 19.8.0.0.0Copyright (c) 1982, 2020, Oracle. All rights reserved.
Enter user-name: SYSTEM
Enter password:
ERROR:
ORA-12545: Connect failed because target host or object does not exist
简言之,Docker容器内sqlplus可正常使用,OSX主机上JDBC、nodejs-oracledb能连接,但sqlplus无法连接。
内容的提问来源于stack exchange,提问作者jmc42

