无法使用squirrel-sql连接到docker中的oracle db

时间:2018-07-10 15:54:14

标签: database oracle docker squirrel-sql

我试图在docker(https://hub.docker.com/r/sath89/oracle-xe-11g/)中连接到oracle db 11。

使用以下命令启动docker

docker run -d -p 8080:8080 -p 1521:1521 -e DEFAULT_SYS_PASS=sYs-p@ssw0rd sath89/oracle-xe-11g

根据此描述: 主机名:localhost 端口:1521 sid:xe 用户名:system 密码:oracle

创建了一个网址-jdbc:oracle:thin:@ 192.168.99.100:1521:xe

使用squirrel-sql时发生错误: 类java.sql.SQLException:ORA-00604:在递归SQL级别1发生错误 ORA-12705:无法访问NLS数据文件或指定的无效环境

但是,如果我尝试连接SQLplus,那就可以了:

docker exec -ti oracle_id sqlplus bash

sqlplus

2 个答案:

答案 0 :(得分:0)

在登录之前,SquirrelSQL需要设置一些NLS变量。对于Docker连接,请注意,命令末尾有“ bash”。这不仅告诉连接您将使用bash shell,还设置了使用bash_rc(也可能是配置文件)进行连接的环境。您来自本地计算机而不是SSH,因此使用的是本地计算机而不是SSH。

我相信有一个squirrel-sql.bat文件可以取消设置,然后设置环境或更佳的环境,让我们在注册表中取消设置,让本地连接正常进行: 在Windows机上:

在注册表中搜索NLS_LANG子项:\ HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE,对其进行重命名,保存更改,重新启动并重试。

答案 1 :(得分:0)

我对Squirrel SQL不熟悉,但是您可能还缺少对jar文件的正确设置。查看并查看您的jar文件是否配置正确(取决于您的版本),看起来像这样:

%Oracle_ \ jdbc \ lib \ ojdbc.jar