我在docker中安装了Oracle 11g数据库,想使用PLSQL连接远程数据库,经过不断尝试,总结出一套完整的流程。
plsql 12.0.7 下载
plsql网盘链接(推荐,含注册码):pan.baidu.com/s/1N0Akj9RC…
提取码:1234
Oracle Instant Client Version 11.2.0.4.0 下载地址
Instant Client网盘链接:pan.baidu.com/s/1NBDn8kT6…
提取码:1234
注意:如果不使用提供的网盘文件,自行下载时需要同时下载 Basic 与 SqlPlus 两个版本的包,分别解压后将内容合并在同一个文件中。
第一步: 获取 tnsnames.ora 文件
- 在docker安装好Oracle 11g后,需要获得一个名为 tnsnames.ora 的配置文件
- 首先进入容器内部
docker exec -it oracle bash - 输入
./ -name tnsnames.ora回车,这一步是为了查找tnsnames.ora所在位置,比如我的路径是./home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
-
复制上一步找到的路径,退出docker容器,执行命令
docker cp 容器id:容器内文件路径 目标路径将这个文件从docker容器中复制到宿主机。然后利用文件传输工具(例如Xftp)将这个文件拷贝到自己的电脑里,注意,不要复制到带有汉字的目录里。 -
用记事本打开 tnsnames.ora ,见下图,蓝色框中的内容自定义,等会登录的时候会用;红色框内改为服务器的IP地址;绿色框内填写Oracle的server name。改好之后保存。
第二步:解压Instant Client
- 解压下载好的Instant Client,终端打开,如下图所示
- 这一步可以省略,终端输入
sqlplus 用户名/密码@IP地址:端口/server name
例如:sqlplus cat/12345@192.168.10.1:1521/orcl, 如果出现SQL>则表示登录成功了。
第三步: 安装PLSQL并修改相关配置
- 安装下载好的PLSQL Developer,修改安装路径,不要带有空格和中文,例如修改为
E:\devTools\PLSQLDeveloper\,剩下的步骤一律默认就好。 - 打开下载好的PLSQL,先不要登录,点击取消,就会进入软件,点击Configure,然后点击Preferences,配置Connection选项中的绿色框中的两项,第一个输入instant client所在目录,第二个在第一个的基础上末尾增加 \oci.dll ,输入完成后点击apply,多点两次以防没有保存。然后点击OK,关闭PLSQL软件。
第四步: 配置环境变量
- 进入环境变量设置,新建一个系统变量,变量名固定为 TNS_ADMIN ,变量值为第一步从服务器中获取的 tnsnames.ora 所在路径,点击OK登录
第五步: 登录,大功告成
-
打开PLSQL,Database为 tnsnames.ora 中自定义的名字,例如第一步图片蓝色框中所起的名字:ORCL
最后
- 为了保证PLSQL和服务端Oracle数据库字符编码相同,还需要添加一个环境变量,查询Oracle字符编码的sql命令为
select userenv('language') from dual;,我的查询结果为AMERICAN_AMERICA.AL32UTF8