我正在从我的 Java 代码执行以下查询:
SELECT * FROM JSTORE.EMPLOYEE
其中“JSTORE”是模式名称,“EMPLOYEE”是表。
我可以将模式名称设置为用作 JSTORE,这样我就不必总是在查询中指定它吗?我正在使用 Oracle 数据库。
如果该架构名称与您的应用程序用于连接数据库的用户名相同,那么您不需要指定架构名称(通过 Java 或 SQL*Lite)。
如果模式名称因应用程序而异,那么我可能会在 SQL 中显示模式名称以避免错误。想想如果你在连接池中 ALTER SESSION 会出什么问题。它仍然是可配置的,并且可以使用一些 Java 代码自动为您生成 SQL(无论如何您可能应该拥有)。
您可以执行以下 SQL:
ALTER SESSION SET CURRENT_SCHEMA=JSTORE
请注意,您需要为您创建的每个 now 连接执行此操作(一个 Oracle 会话 == 一个 Java Connection 对象)。
使用池连接时要小心;如果它们需要不同的模式,则需要在将它们返回池之前恢复默认值。