- PR -

Merge文とバインド変数について

1
投稿者投稿内容
kousuke
会議室デビュー日: 2005/12/01
投稿数: 5
投稿日時: 2006-03-22 15:25
こんにちは
初心者ですがどなたかご教授お願いしたく投稿致しました。

現在VS2005、oracle9iで開発しております
dbのあるテーブルを更新および登録したく、以下のsqlを投入したところ

(A:はテーブル名(仮)です)
(K1〜K は項目名(仮)です)
(:p1〜:p7はバインド変数で投入時、設定します)

Merge
Into A AN
Using (Select * From A Where K2 = :p2 And K3 = :p3) AO
On (AN.K2 = AO.K2 And AN.K3 = AO.K3)
When Matched Then
Update Set
AN.K1 = :p1,
AN.K4 = :p4,
AN.K5 = :p5,
AN.K6 = :p6,
AN.K7 = :p7
When Not Matched Then
Insert
(
AN.K1,
AN.K2,
AN.K3,
AN.K4,
AN.K5,
AN.K6,
AN.K7)
Values
(
:p1,
:p2,
:p3,
:p4,
:p5,
:p6,
:p7
)

としたところ
"ORA-01008: バインドされていない変数があります"
とエラーになってしまいます。
ちなみに
Using (Select * From A Where K2 = :p2 And K3 = :p3)のバインド変数
:p2 :p3の部分を実際の値にしてみるとうまくいくのですが・・・・・

原因が分かる方がいらっしゃいましたらご教授お願いしたいと思います。




1

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