1

我正在从我的 Java 代码执行以下查询:

SELECT * FROM JSTORE.EMPLOYEE

其中“JSTORE”是模式名称,“EMPLOYEE”是表。

我可以将模式名称设置为用作 JSTORE,这样我就不必总是在查询中指定它吗?我正在使用 Oracle 数据库。

4

2 回答 2

2

如果该架构名称与您的应用程序用于连接数据库的用户名相同,那么您不需要指定架构名称(通过 Java 或 SQL*Lite)。

如果模式名称因应用程序而异,那么我可能会在 SQL 中显示模式名称以避免错误。想想如果你在连接池中 ALTER SESSION 会出什么问题。它仍然是可配置的,并且可以使用一些 Java 代码自动为您生成 SQL(无论如何您可能应该拥有)。

于 2012-08-22T10:10:13.760 回答
2

您可以执行以下 SQL:

ALTER SESSION SET CURRENT_SCHEMA=JSTORE

请注意,您需要为您创建的每个 now 连接执行此操作(一个 Oracle 会话 == 一个 Java Connection 对象)。

使用池连接时要小心;如果它们需要不同的模式,则需要在将它们返回池之前恢复默认值。

于 2012-08-22T10:21:27.637 回答