- PR -

スキーマ修飾なしでSQL実行

1
投稿者投稿内容
urbb
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-05-30 19:14
環境
db:PostgresSQL8.2.5
framework:struts2.0
webserver:Tomcat6.0
---------------------------------

スキーマ(test)の中のテーブル(testtbl)の
中身をスキーマ修飾子なしでSQLを実行したいのですが、
どこを弄ればいいかも検討がつきません。。

ちなみにスキーマを作らずデフォルトのpublicスキーマ内にある
テーブルへSQLは実行できます。

%TOMCAT_HOME%\conf\Catalina\localhost
の中のxmlにdbconnect情報を記述して、
context.lookupしてデータソース作ってdb接続しているので、
ここなのかなぁとか思ってましたが、
スキーマのパラメータはなさそう・・。

アドバイスお願いします!
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-05-30 21:35
スキーマパラメータが標準で存在しない場合、独自に定義し、Java アプリケーションでもその設定を参照するように実装しなければなりません。
(web.xml 等に設定すれば他は対応不要という問題ではありません。)

ただ、DB 固有であるスキーマ情報を DB 以外の部分で設定するのは疑問な点もあります。

もっともこれには代案もありまして、パブリックシノニムを作成すれば DB 内で完結します。
(テスト/本番のスキーマ切り替えは、パブリックシノニムの作り直しで対応します。)

パブリックシノニムの作成や削除については PostgreSQL のテキストを参照してください。


あと、私の経験から老婆心を申し上げますと、テスト環境/本番想定環境で正常に動作したのに、パブリックシノニムの作り忘れで本番環境では動作しないという障害が発生したことがあります。
テーブルやビュー、シーケンスの作成洩れは聞いたことがありませんが、シノニムは盲点になりやすいので注意してください。
1

スキルアップ/キャリアアップ(JOB@IT)