【发布时间】:2021-09-10 10:56:16
【问题描述】:
您好,我正在尝试配置 quarkus 以连接到 oracle 数据库。使用当前配置,我可以连接到数据库,但无法指定当前架构。
我按照文档并尝试使用 new-connection-sql 来设置当前架构。但这似乎不起作用。
quarkus.datasource.mydatasource.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME
这是我的 application.properties 文件
quarkus.datasource.mydatasource.db-kind=oracle
quarkus.datasource.mydatasource.jdbc.driver=oracle.jdbc.driver.OracleDriver
quarkus.datasource.mydatasource.jdbc.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.15.73.140)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=SN)))
quarkus.datasource.mydatasource.jdbc.min-size=3
quarkus.datasource.mydatasource.jdbc.max-size=20
quarkus.datasource.mydatasource.username=username
quarkus.datasource.mydatasource.password=password
quarkus.datasource.mydatasource.new-connection-sql=ALTER SESSION SET CURRENT_SCHEMA=SCHEMA_NAME
这可能是什么问题?
谢谢。
【问题讨论】:
-
我不知道,我什至从未听说过“夸库斯”。但是:如果您可以连接到数据库,那也是您的“当前”模式,不是吗?看起来您好像想要更改会话并将另一个模式设置为当前模式。解决方法怎么样?直接连接到那个“新的”/“不同的”模式,然后它就会变成最新的,这样你就可以避免 ALTER SESSION。顺便说一句,也许您的问题与 command 作为 DDL 有关。例如,在 Oracle 中,要从 PL/SQL 运行它,您需要使用动态 SQL。也许“夸库斯”也需要类似的东西?
-
您想通过更改 current_schema 来具体完成什么?这是为了安全、方便还是其他原因?
-
实际上两者兼而有之。我所有的数据库对象都属于一个模式。因此,当用户登录时,我们需要设置架构以便能够访问数据库对象。
标签: oracle jdbc quarkus connection-pool