よろしくお願いします。
Pro*Cで作成しているのですが、カーソルの宣言時に指定するSQLをIF文で分けようとすると、
コンパイル時に「PCC-W-02332, SQLの識別子を再定義しようとしました。」が表示されます。
IFの結果がどうであれ、カーソルが取得するレイアウトが同一かつ、OPEN後の処理も同じように処理するため、できれば同一のカーソル名で行いたいです。
以下は今の状態を簡略化したプログラミングですが、
どのように対処するのが良いのでしょう。
Oracle10.2です。
よろしくお願いします。
-------------------------------------------------------
int flg;
<中略>
if ( flg == 0 ) {
EXEC SQL DECLARE curname CURSOR FOR
SELECT tbl.col1, 'flgが0です' AS col2 FROM tbl
;
} else {
EXEC SQL DECLARE curname CURSOR FOR
SELECT tbl.col1, 'flgが0以外です' AS col2 FROM tbl
;
}
EXEC SQL OPEN curname;
EXEC SQL WHENEVER NOT FOUND DO BREAK;
while(1) {
EXEC SQL FETCH rackBCCur INTO :retVals
<略>
}
-------------------------------------------------------
No.1ベストアンサー
- 回答日時:
すみません。
最近カーソル処理を書いてないんですが自分が思うにカーソル処理で帰ってくる行数は1行になるようSELECT文を書かなくてはいけなかった気がしますが。早速のご回答ありがとうございます。
よろしくお願いします。
恐らくINTOで指定する変数のことだと思います。
カーソルで抽出の定義をして(このときは複数行)、FETCHのところでそこから1行抽出し、INTOで指定した変数に値を入れます。
このとき、INTOで指定した変数には1行しか入りません。
なので、ほとんどの場合はFORやWHILEでループをして、毎行FETCHすることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
カーソル定義での条件分岐
Oracle
-
引数によってwhere句を切り替える方法
Oracle
-
変数が選択リストにありません
Oracle
-
-
4
カーソル0件の時にエラーを発生させる
Oracle
-
5
PL/SQLカーソルの2重FORループができません
Oracle
-
6
FROM の中で CASE を使えるでしょうか
SQL Server
-
7
オラクルのUPDATEで複数テーブル
Oracle
-
8
PCC-S-02201エラーの対処を教えてください!
Oracle
-
9
【PL/SQL】FROM区に変数を使う方法
Oracle
-
10
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
11
UPDATE文のWHERE条件に他のテーブルのフィールドも入れたい
SQL Server
-
12
PL/SQL PLS-00103エラーについて
Oracle
-
13
Oracle 8i コンマ(,)を含むデータをinsertしたい
その他(データベース)
-
14
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
15
構造体のメンバをfor文で回したい
C言語・C++・C#
-
16
Pro c/c++ でホスト変数の後に.lenとか.arrの意味は?
C言語・C++・C#
-
17
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
18
課題でつまってます・・・
C言語・C++・C#
-
19
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
20
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
処理件数を非表示にしたい
-
カーソルを使って、最終行レコ...
-
動的SQLの処理件数
-
カーソル宣言をIFで分けられま...
-
ACCESSで一括処理する方法
-
カーソル0件の時にエラーを発生...
-
RDBとVSAMの比較
-
300万件のデータの処理について
-
NVLとDECODEのスピード差
-
Accessで処理経過を表示したい...
-
クエリの実行時間の目安
-
(x 行処理されました)を表示さ...
-
データ型でFloatとreal の計算...
-
SQL plus で改行
-
ストアドプロシージャ_カーソル...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カーソル0件の時にエラーを発生...
-
処理件数を非表示にしたい
-
データ型でFloatとreal の計算...
-
カーソル宣言をIFで分けられま...
-
NVLとDECODEのスピード差
-
Accessで処理経過を表示したい...
-
ストアドプロシージャ_カーソル...
-
カーソルを使って、最終行レコ...
-
ACCESSで一括処理する方法
-
RDBとVSAMの比較
-
300万件のデータの処理について
-
SELECT と INSERT の速度
-
SQL-LOADERの逆のもの
-
動的SQLの処理件数
-
クエリの実行時間の目安
-
PL/SQL で continue ?
-
テーブルの項目が異なるテーブ...
-
カーソルがコミットするとクロ...
-
Oracleデータベースの暗号化
-
SQLについて WITH句とサブクエ...
おすすめ情報