当前位置: 首页 > 知识库问答 >
问题:

Oracle容器数据库12c,使用JDBC连接

羊舌志
2023-03-14

我正在尝试学习如何使用Oracle Container数据库,并只做基本的JDBC连接。我安装了一个文档化版本的Oracle:

https://hub.docker.com/_/oracle-database-enterprise-edition

根据数据表,该数据库由CDB数据库ORCLCDB和PDB数据库ORCLPDB1组成。

所以我想我可以这样连接它:

jdbc:oracle:thin:@localhost:1555: ORCLCDB

用户名为sys,密码为Oradoc_db1,并将特殊的内部登录jdbc参数设置为“sysdba”,以避免出现错误“本地oracle CDB:ORA-28009:connection as sys应为sysdba或SYSOPER”

我想我可以通过输入这个来切换到PDB:

更改会话设置容器=ORCLPDB1

然后我可以创建一个新用户:

创建由MyPASSWORD1标识的用户

但是我被困住了。我认为应该有一些方法可以使用JDBC连接字符串直接连接到PDB。每次我在谷歌上搜索这个,它都会谈论tnsname之类的,但是使用JDBC连接的人通常在服务器上使用Tomcat,或者没有安装Oracle客户端。他们希望只要安装了瘦驱动程序就能连接到甲骨文,除此之外别无其他。

我已经尝试了显而易见的方法:

jdbc:oracle:thin:@localhost:1555:ORCLPDB1,用户名为myuser或sys,但我总是得到:

ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID

在这一点上,我被卡住了。

共有2个答案

云和惬
2023-03-14

显然正确答案是...

jdbc:oracle:thin:@localhost:1521/ORCLPDB1.localdomain

然后我可以使用上面的方法作为SYS连接。如果我想作为创建的用户连接,我还需要。。。

将创建会话授予myuser;

然后,关闭internal_logonjdbc参数。

司徒锐进
2023-03-14

您需要使用SERVICE_NAME才能连接到Oracle容器数据库

请按如下方式更改您的连接字符串:

jdbc:oracle:thin:@localhost:1555/ORCLPDB1
  • 服务名称由“/”表示。
  • SID(系统标识符)由“:”(不使用)表示

注意!默认侦听器端口是1521,不确定为什么要使用不同的端口。

祝你好运!

 类似资料:
  • 我正在尝试一个程序来检查与oracle数据库的连接,如下所示 但在eclipse中运行之后,它显示了以下异常。 JAVAsql。SQLException:Listener拒绝了连接,出现以下错误:ORA-12505,TNS:Listener当前不知道连接描述符中给出的SID 请帮助我,我是oracle数据库的新手。

  • 本文向大家介绍jdbc连接oracle数据库功能示例,包括了jdbc连接oracle数据库功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jdbc链接oracle数据库功能。分享给大家供大家参考,具体如下: 希望本文所述对大家java程序设计有所帮助。

  • 我们正在使用tomcat jdbc连接池与Oracle数据库。最近,我们遇到了JDBC瘦客户机的Oracle数据库中存在太多非活动会话的问题。 有人能帮我们吗?它为什么会导致数据库中的非活动会话,以及对此的解决方案是什么。

  • 目前,我们有一个数据库运行在Oracle 10g(10.2.0.2)上,需要全天候运行,但由于数据中心不支持它,服务器OS和Oracle数据库10g,我们不得不按照上级的协议转移到Oracle 12c。我知道我不能使用从10.2.0.2到12.2.0.1的直接expdp/impdp。并且资源有限,这意味着服务器资源有限,无法访问oracle支持以下载oracle 10.2.0.5修补程序集或任何可

  • 这是我得到的错误: 我用*替换了一些细节,因为这是学校的数据库。

  • 我正在使用sqldeveloper查询数据库并将结果导出到csv文件。我每天都需要这个文件,所以考虑创建可以在windows任务调度器上调度的bat文件。我在研究它,发现我可以使用SQLcl运行脚本来导出查询数据。但不知何故,我无法连接它,它给了我一个错误“ORA-01017:无效的用户名/密码;登录被拒绝。以下是我的sql developer连接属性 这是我的命令行: 我安装了java开发工具包