ORACLE MASTER Silver SQL 26aiリレーションとSELECT・制限・ソートオリジナル・公式資料照合難易度★★☆☆☆
Oracle AI Database 26aiへSQL*Plusで接続し、DEFINE ON、通常の置換文字&を使う。次を順に実行する。VERIFYのold/new表示行自体は数えず、SELECTの数値結果と置換の実行場所の説明を選ぶ。 DEFINE extra = 8 SET VERIFY ON SELECT 100 + &extra AS total FROM dual;
A
108。DBサーバーが&extraというバインド変数を直接評価する
値は108ですが仕組みが違います。&による置換はSQL*Plus側で、:name形式等のバインドと区別します。
B
100。VERIFY ONなので置換値は表示するだけで式には使わない
VERIFYは確認表示の設定です。置換を無効にせず、SQLには8が入ります。
C
エラー。DEFINEで定義しても実行のたびに数値入力が必須になる
定義済みのextraを参照しており、この条件で再入力は必須ではありません。
D
108。SQL*Plusが&extraを送信前に置き換える★ 正解
クライアント側のテキスト置換後、サーバーが数値式100 + 8を評価します。
解説
DEFINEで保持した文字列8をSQL*PlusがSQL送信前に置き換え、DBには100 + 8という式が渡ります。VERIFY ONは置換前後を表示する設定であり、サーバーのバインド変数を宣言する機能ではありません。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiを使う。customers(customer_id PRIMARY KEY)には10、20があり、orders(order_id PRIMARY KEY, customer_id REFERENCES customers(customer_id))の行は(1,10)、(2,10)、(3,20)、(4,NULL)だけである。次のSQLが返すcustomer_idの集合はどれか。行の表示順は問わない。
SELECT DISTINCT c.customer_id
FROM customers c JOIN orders o
ON c.customer_id = o.customer_id;
問題 2
Oracle AI Database 26aiで、次の2列の値を順に答える。数値はNUMBERとして評価する。
SELECT 100 + 10 * CAST(NULL AS NUMBER) AS a,
100 + 10 * NVL(CAST(NULL AS NUMBER), 0) AS b
FROM dual;
問題 3
Oracle AI Database 26aiのemployees(employee_id PRIMARY KEY, salary NUMBER)に(1,100)、(2,200)、(3,200)だけがある。次の結果でemployee_idが表示される順序はどれか。
SELECT employee_id, salary AS pay
FROM employees
ORDER BY pay DESC, employee_id ASC
FETCH FIRST 2 ROWS ONLY;