【发布时间】:2021-07-11 13:37:09
【问题描述】:
我正在尝试学习如何使用 Oracle 容器数据库,并且只进行基本的 JDBC 连接。我安装了一个 dockerised 版本的 Oracle:
https://hub.docker.com/_/oracle-database-enterprise-edition
根据数据表设置了一个名为 ORCLCDB 的 CDB 数据库和一个名为 ORCLPDB1 的 PDB 数据库。
所以我发现我可以像这样连接到它:
jdbc:oracle:thin:@localhost:1555:ORCLCDB
使用用户名 sys,密码 Oradoc_db1,并将特殊的 internal_logon jdbc 参数设置为等于“sysdba”以避免错误“local oracle CDB: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER”
我发现我可以通过输入以下内容切换到 PDB:
ALTER SESSION SET CONTAINER=ORCLPDB1
然后我可以创建一个新用户:
创建由 MYPASSWORD1 标识的用户 MYUSER
但后来我被困住了。我认为应该有某种方法可以使用 JDBC 连接字符串直接连接到 PDB。每次我在谷歌上搜索这个,它都会谈论 tnsnames blah blah,但是使用 JDBC 连接的人通常在服务器上使用 Tomcat,或者没有安装 Oracle 客户端。他们希望只安装瘦驱动程序就能够连接到 Oracle。
我已经尝试了明显的使用:
jdbc:oracle:thin:@localhost:1555:ORCLPDB1 使用用户名 myuser 或 sys,但我总是得到:
ORA-12505,TNS:listener 目前不知道连接描述符中给出的 SID
此时我被卡住了。
【问题讨论】:
标签: database oracle jdbc oracle12c