如何将模式/其他用户添加到给定给java的数据库url?

如何将模式/其他用户添加到给定给java的数据库url?,java,database,oracle,Java,Database,Oracle,我正在尝试将spring boot java应用程序连接到Oracle数据库。Oracle SQL Developer显示了我希望查询的表,这些表位于名为testdb的数据库中的其他用户->`testUser下 我可以使用urljdbc:oracle:thin:@localhost:1521:testdb连接到数据库。但是,当我使用SQL语句时 SELECT * FROM SCHEMA_DEFINITION WHERE SCHEMA_NM = ? Java找不到名为SCHEMA_DEFINIT

我正在尝试将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的表。在SQL语句中使用
testUser.SCHEMA\u定义
确实有效。如何让Java在
otherusers->testUser
中查找所有表

我已尝试设置数据源的架构(
datasource.setSchema(“testUser”);
)并更改url(添加
?search\u path=testUser
?currentSchema=testUser


这些都不起作用。

这不是java问题,您需要的是登录到用户
testUser
,这样您就可以在不使用详细语法的情况下查询这些表,如果您确实需要保持这些查询的原样,并从
testdb
运行它们,那么您需要在
testdb
架构中为这些表创建同义词:

为testUser.SCHEMA\u定义创建同义词TESTDB.SCHEMA\u定义;

对每个表执行此操作,它们就会起作用。

在github.com/embulk/embulk-input-jdbc/issues/144中找到了解决方案。dataSource.setSchema(“testUser”);如果我使用ojdbc7(我在pom.xml中使用的是ojdbc6),则可以使用。

在中找到了解决方案。dataSource.setSchema(“testUser”);如果我使用ojdbc7(我在pom.xml中使用了ojdbc6),那么它就可以工作。