COBOLソースに記述するホスト変数を使用したSELECT INSERT分に関する質問です。
COBOLのソースに下記のようなSQL分を記述した際、どのような制御でホスト変数にはどのような値が代入されるのでしょうか?
SELECT MAX(columnA) INTO :H1010:H2020 FROM A_TABLE WHERE …(以下抽出条件)
※H1010及びH2020はホスト変数定義しているものとします。
SELECTを行った項目数とINTO句にて指定した変数の数が異なる場合、エラーとなる記憶があります。
また、複数のホスト変数を使用する場合、カンマ区切りが必要だった記憶もあります。
実際に実行したところ、エラー等無く実行されました。結果を見るとH1010には値が代入され、H2020は初期値のままでした。
どのような制御でこの結果になっているのでしょうか?
参考までに、DBMSは「symfoware」です。
もしご存知の方がいらっしゃいましたら、ご教授頂けると助かります。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
一個の列の設定や受け取りで、
:値の受け取り変数[:標識変数]
といった書き方をします。
標識変数は、列の値が「null」なのか「nullでない有効な値」なのかを判別するために使います。
標識変数が負であれば、受け渡しをしようとした列値がnullという意味になります。この場合、列値の受け渡し変数の値は、保証されません。
標識変数の値が0であったり、正の数値なら、nullでない有効な列値が返されているという意味になります。
標識変数の値の具体的な意味については、お使いのRDBMS、コンパイラのマニュアルを参照してください。
標識変数ですか。
初めて聞く単語なのでちょっと戸惑いましたが、丁寧なご説明ありがとうございます。
勉強不足で申し訳ないです。
助かりました。ありがとうございます。
No.1
- 回答日時:
:H1010:H2020と記述した場合には、値があればH1010に入って、H2020は正の整数が設定されます。
値がNULLの場合にはH1010は元の値のままで、H2020に負の整数が設定されます。
ですから、SELECT後には、最初にH2020を判定して、正の整数ならH1010の値を利用します。
H2020が負の場合には、H1010に値がない場合の処理をします。
なるほど。後ろに記述した変数にはSELECT結果がNULLかどうかの判断結果が代入されるのですね。
直前でイニシャライズしていたので気付きませんでした。
分り易いご説明ありがとうございます。助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OracleのSQL*PLUSで、デー...
-
Excelで、改行がある場合の条件...
-
GROUP BYを使ったSELECT文の総...
-
日本語の表名、列名の利用について
-
Excelでセルの書式設定を使用し...
-
主キーに重複があるレコードの...
-
列別名に二重引用符があった場合?
-
cursor.getString
-
select insertで複数テーブルか...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
Access終了時の最適化が失敗?
-
外部結合とor条件混在の記述方法
-
ワードの差込印刷で教えて下さ...
-
カレントレコードが無い事を判...
-
Accessのクエリでフィールドの...
-
ヘッダレコードとトレーラレコ...
-
ファイル書込みで一行もしくは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを使ったSELECT文の総...
-
Excelでセルの書式設定を使用し...
-
OracleのSQL*PLUSで、デー...
-
Excelで、改行がある場合の条件...
-
日本語の表名、列名の利用について
-
主キーに重複があるレコードの...
-
COBOLソースに記述するホスト変...
-
ACCESSのコンボボックスの右側...
-
image型のInsertについて
-
レコードセットからどれでも1...
-
cursor.getString
-
行全体を、決まった文字列があ...
-
ADOのRecordCountプロパティに...
-
MS-ACCESS2000で数万件のデータ...
-
SELECT文で列名指定して桁あわ...
-
NULLのみを保持した列を除外し...
-
別のテーブルの値でUPDATEした...
-
SQLについて質問です。 AVG関数...
-
LOAD DATE INFILE で Bit(1)型...
-
クエリビルダで列名を変数にし...
おすすめ情報