如何将模式/其他用户添加到给定给java的数据库url?
我正在尝试将spring boot java应用程序连接到Oracle数据库。Oracle SQL Developer显示了我希望查询的表,这些表位于名为如何将模式/其他用户添加到给定给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
testdb
的数据库中的其他用户->`testUser下
我可以使用urljdbc: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),那么它就可以工作。