我正在尝试将Spring Boot Java应用程序连接到Oracle数据库。 Oracle SQL Developer在其他用户->`testUser下的名为testdb
的数据库中显示了我希望查询的表。
我可以使用url jdbc:oracle:thin:@localhost:1521:testdb
连接到数据库。但是,当我使用SQL语句时
SELECT * FROM SCHEMA_DEFINITION WHERE SCHEMA_NM = ?
Java找不到名为SCHEMA_DEFINITION的表。在SQL语句中使用
testUser.SCHEMA_DEFINITION
确实可行。如何告诉Java在Other users->testUser
中查找所有表?我尝试设置数据源的架构(
dataSource.setSchema("testUser");
)并更改url(添加?search_path=testUser
和?currentSchema=testUser
)。这些都不起作用。
最佳答案
这不是Java问题,您需要登录到用户testUser
中,以便如果您确实需要保持这些查询的原样,则可以使用冗长的语法查询那些表,并从testdb
运行它们,然后您需要为这些表创建同义词testdb
模式内的表:
CREATE SYNONYM TESTDB.SCHEMA_DEFINITION FOR testUser.SCHEMA_DEFINITION;
对每个表执行此操作,它们将起作用。