ROWID型の宣言について(Pro*C)
(Oracle9i)
Pro*Cにて、ROWIDを使用したSELECT&INSERTをしたいのですが、
ホスト変数をROWID型で宣言しようとするとエラーになります。
[PCC-S-02201, 記号"rowid"が見つかりました。 次のうちの1つが入るとき~]
宣言の仕方は以下の通りです。
EXEC SQL BEGIN DECLARE SECTION;
rowid fetch_ROWID;
short fetch_ROWID_ind;
EXEC SQL END DECLARE SECTION;
ROWIDという型はORACLEにあるので、なぜプリコンパイルが通らないのか
分かりません。
どなたかお分かりになる方がいらっしゃいましたらよろしくお願いいします。
ちなみに以下のような使い方をしようとしていますので、参考までに
載せておきます。
EXEC SQL DECLARE C_XXX CURSOR FOR
SELECT ・・・,ROWID FROM XXX FOR UPDATE ・・・
EXEC SQL OPEN C_XXX;
EXEC SQL WHENEVER NOT FOUND DO break;
while(1){
EXEC SQL FETCH C_XXX INTO
・・・,
:fetch_ROWID:fetch_ROWID_ind;
EXEC SQL
UPDATE XXX
SET ・・・
WHERE ROWID=:fetch_ROWID:fetch_ROWID_ind;
}
お礼
実際のデータベースを見る限りおっしゃるとおり、18桁のようです。ありがとうございました。