HOME»データベーススペシャリスト掲示板»H29 午後I 問3 動的SQLの空欄の穴埋め
投稿する

H29 午後I 問3 動的SQLの空欄の穴埋め [0078]

 トリトンさん(No.1) 
空欄穴埋め問題で、aの解答が「売上額2月-売上額1月」です。
しかし、設問中には「実行の都度、比較する年月に対応したSQL文を組み立て動的SQLで実行することにした。その構文を表2中のSQL2に示す」と記載されています。
しかし、aの解答では実行の都度比較する月に対応できないと思います。
解答も確認しましたが、設問中に書かれた動的SQLの観点についてはふれられておりません。
納得のいく解答をご教授いただきたいです。よろしくお願いします。
2019.04.12 23:27
okomeさん(No.2) 
確かにaの回答ではSQL2は動的SQLではありません。
SQLを組み立てるプログラムによって自動的に生成された、
RDBMSによって実行される直前のSQLです。
つまりそういうことです。
IPAの日本語の書き方が少し誤解を招きやすいというだけです。
まるで動的SQL(プログラムで実装された状態)を聞いているようでありながら、
実際はプログラムがSQLを組み立てた後の話だったのです。

若干のヒントもありました。
動的SQLはSQLの構文ごと組み立てるものであるという知識と、
「その構文を表2のSQL2に示す」という表記をもとに、
"SQL2はプログラムによって組み立てられた後なんだな"と判別できます。

動的SQL(プログラムの状態)だったらプログラム言語で書かれているはずなのにSQLで書かれているから、"SQLに組み立てられてすぐの状態を書けばいいのね"と判別することもできます。


ちなみにSQL1は静的SQL(ホスト変数をつかったやつ)です。
ホスト変数ありの静的SQLと、動的SQLは別物です。

取り留めない文章で、すいません。
参考になれば幸いです。
2019.04.15 15:00
 トリトンさん(No.3) 
試験勉強にかまけて返信が遅れてしまいました。
ご返信ありがとうございます。

とてもわかりやすく納得いく内容でした。
SQL1がホスト変数を使用した構文であったため、
SQL2もホスト変数を使用した構文であると
勘違いをしていました。
(私の回答はとんでもないことになってます。)

その部分も考慮したご解説ありがとうございます。
2019.04.17 09:19
okomeさん(No.4) 
参考にしたWEBサイトはIBMのものです。
サイトによってはホスト変数使っていると動的SQLだと紹介しているところもありましたので
なかなか理解することは難しかったです。

おかげさまで自分の勉強にもなりました。
2019.04.17 10:22
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop