首页 > 解决方案 > 如何将模式/其他用户添加到给 java 的数据库 url?

问题描述

我正在尝试将 Spring Boot Java 应用程序连接到 Oracle 数据库。Oracle SQL Developer 显示了我希望查询的表位于testdb其他用户 -> `testUser.

我可以使用 url 连接到数据库jdbc:oracle:thin:@localhost:1521:testdb。但是,当我使用 SQL 语句时

SELECT * FROM SCHEMA_DEFINITION WHERE SCHEMA_NM = ?

Java 找不到名为 SCHEMA_DEFINITION 的表。testUser.SCHEMA_DEFINITION在 SQL 语句中使用确实有效。如何告诉 Java 查找 中的所有表Other users->testUser

我尝试设置数据源的架构 ( dataSource.setSchema("testUser");) 并更改 url (添加?search_path=testUserand ?currentSchema=testUser)。

这些都不起作用。

标签: javadatabaseoracle

解决方案


这不是Java问题,您需要登录用户testUser,这样如果您确实需要保持这些查询不变,您可以在没有冗长语法的情况下查询这些表,然后运行它们,testdb您需要为里面的这些表创建同义词testdb架构:

CREATE SYNONYM TESTDB.SCHEMA_DEFINITION FOR testUser.SCHEMA_DEFINITION;

为每张桌子执行此操作,它们将起作用。


推荐阅读