1

Java コードから以下のクエリを実行しています。

SELECT * FROM JSTORE.EMPLOYEE

「JSTORE」はスキーマ名、「EMPLOYEE」はテーブルです。

クエリでスキーマ名を常に指定する必要がないように、スキーマ名を JSTORE として使用するように設定できますか? 私はOracleデータベースを使用しています。

4

2 に答える 2

2

次の SQL を実行できます。

ALTER SESSION SET CURRENT_SCHEMA=JSTORE

作成する now 接続ごとにこれを実行する必要があることに注意してください (1 つの Oracle セッション == 1 つの Java 接続オブジェクト)。

プールされた接続を使用する場合は注意してください。異なるスキーマが必要な場合は、プールに戻す前にデフォルトを復元する必要があります。

于 2012-08-22T10:21:27.637 に答える
2

そのスキーマ名が、アプリケーションがデータベースへの接続に使用しているユーザー名と同じ場合、(Java または SQL*Lite を介して) スキーマ名を指定する必要はありません。

アプリケーションによってスキーマ名が異なる場合は、間違いを避けるためにスキーマ名を SQL に含めます。接続プールで ALTER SESSION を実行すると、何が問題になるかを考えてみてください。それはまだ構成可能であり、Javaコードを使用してSQLを生成するプロセスを自動化できます(おそらくとにかく持っているはずです)。

于 2012-08-22T10:10:13.760 に答える