首页 文章

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

提问于
浏览
0

我试图在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

从此描述:hostname:localhost port:1521 sid:xe username:system password:oracle

制作了一个url - jdbc:oracle:thin:@ 192.168.99.100:1521:xe

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

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

docker exec -ti oracle_id sqlplus bash

sqlplus

2 回答

  • 0

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

    我相信有一个squirrel-sql.bat文件可以取消设置然后设置环境或者更好,让我们在注册表中取消它,让本地连接顺其自然:在你的Windows机器上:

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

  • 0

    我不熟悉Squirrel SQL,但您可能也错过了正确的jar文件设置 . 查看并查看您的jar文件是否配置正确,具体取决于您的版本,它看起来像这样:

    %Oracle_ \ JDBC \ LIB \ ojdbc.jar

相关问题