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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでセルの書式設定を使用し...
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを使ったSELECT文の総...
-
Excelで、改行がある場合の条件...
-
主キーに重複があるレコードの...
-
GROUP BYを行った後に結合した...
-
実績累計の求め方と意味を教え...
-
Oracleでの文字列連結サイズの上限
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
-
アクセスでレポートの1印刷内...
-
固定値を含む結合と複数テーブ...
-
差し込み印刷のレコード数について
-
SELECTで1件のみ取得するには?
-
レコードセット(ADO.Recordset)...
-
エクセル関数 文字(ハイフン...
-
レコードが存在しなかった場合
-
Access終了時の最適化が失敗?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OracleのSQL*PLUSで、デー...
-
Excelでセルの書式設定を使用し...
-
GROUP BYを使ったSELECT文の総...
-
Excelで、改行がある場合の条件...
-
日本語の表名、列名の利用について
-
主キーに重複があるレコードの...
-
LOAD DATE INFILE で Bit(1)型...
-
COBOLソースに記述するホスト変...
-
cursor.getString
-
ACCESSのコンボボックスの右側...
-
NULLのみを保持した列を除外し...
-
列別名に二重引用符があった場合?
-
image型のInsertについて
-
ADOのRecordCountプロパティに...
-
MS-ACCESS2000で数万件のデータ...
-
別のテーブルの値でUPDATEした...
-
No.2 oracleのテーブルデータの...
-
クエリビルダで列名を変数にし...
-
SELECT文で列名指定して桁あわ...
-
SQLで列名の変更
おすすめ情報