java - 如何将模式/其他用户添加到给 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=testUser
and ?currentSchema=testUser
)。
这些都不起作用。
解决方案
这不是Java问题,您需要登录用户testUser
,这样如果您确实需要保持这些查询不变,您可以在没有冗长语法的情况下查询这些表,然后运行它们,testdb
您需要为里面的这些表创建同义词testdb
架构:
CREATE SYNONYM TESTDB.SCHEMA_DEFINITION FOR testUser.SCHEMA_DEFINITION;
为每张桌子执行此操作,它们将起作用。
推荐阅读
- reactjs - 我在 this.state 中得到了值,我正在过滤状态,但我得到的值为 null
- java - 在 JPA 中使用 nativeQuery 时出现“无法提取结果集”错误
- woocommerce - 在 woocommerce 中未显示可供选择的属性
- json - 如何将 JSON null 解码为空集合
- android - 如何在 Android 中使用 Circle CI 自动部署 Fabric Crashlytics Beta
- c# - 重载 RESTful Web API
- php - 是否可以像这样检查多个单选按钮?
- angular - 带有@angular/flex-layout、@angular/material 和带有图像的mat-card 的响应式网格?
- bash - 对一组文件使用命令并保存结果
- java - RestTemplate.exchange 即使变量注释了@NotNull,也会创建实例