- PR -

ODP.NETを利用してCommandBuilderで作成されたコマンドにスキーマ情報を追加するには?

1
投稿者投稿内容
js
常連さん
会議室デビュー日: 2004/09/14
投稿数: 47
投稿日時: 2005-06-09 11:45
こんにちわ。
ODP.NETを利用してテーブルに対するDMLコマンドを
CommandBuilderを利用して自動生成しました。

しかしアップデートを実行すると「表が存在しません」とエラーが発生するので
コマンドを確認してみたところ

UPDATE "TBL" SET "CUSTMER_CODE"=:2 WHERE "CUSTMER_CODE"=:6

のようになっており「TBL」にスキーマ情報が無いようでした。
このTBLを所有するユーザーで実行すると正しく更新できるのですが。
実行しようとしたユーザーにはこのテーブルに対する各DML権限は与えています。
よろしくお願いします。
いーた
大ベテラン
会議室デビュー日: 2004/07/12
投稿数: 154
お住まい・勤務地: 東京
投稿日時: 2005-06-09 13:13
こんにちは。

「TBL」がhogehogeスキーマに属していると仮定して...
UPDATE hogehoge.TBL SET CUSTMER_CODE=:2 WHERE CUSTMER_CODE=:6
のように、スキーマを指定してあげる必要があります。

SQL全てにスキーマを記述するよりはOracle側でシノニムを作成する方が簡単ですので、
そちらも検討してみてはいかがでしょうか。
js
常連さん
会議室デビュー日: 2004/09/14
投稿数: 47
投稿日時: 2005-06-09 13:19
なるほど、別名という手がありますね。

自分でUPDATEコマンドを書く時はHOGE.TBLのようにしていたのですが
コマンドを書くよりパフォーマンスは落ちてもコマンドビルダーを使おうと思ったのですが。。

やはり完璧に、とはいかないようなんですね。

ありがとうございました。
1

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