业务需求需要读取oracle数据库数据, 想先在dbeaver连接oracle数据库进行操作, 但是管理员一开始给的用户名与密码连接不上, 报错:
以及打开详细
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
12505这个错误翻译过来就是
找不到sid对应的实例库,输入的oracle的service_name与sid不一致。
而且管理员可以通过sqlplus登录数据库, 但是通过应用程序比如dbeaver通过jdbc来连接oracle时无法成功连接,一直出现ORA-12505错误, 说明使用sqlplus来连接是使用server_name,但是使用外部软件dbeaver等是用sid name来连接的, 所以要解决这个问题需要找到数据库的SID name.
解决方案
考虑到可能管理员没有给我SID只给了我只读的用户名以及密码, 于是要求他在oracle执行
select INSTANCE_NAME from v$instance;
结果如下红框, 这里面就是SID
然后再dbeaver界面的database这行填上上方的搜索结果以及右边选上SID, 表明这是SID的name
至此, 完成dbeaver连接oracle的过程