ORACLE MASTER Silver SQL 26ai表・制約・一時表とビューオリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiで次のグローバル一時表を作成済みである。同一セッションで2行INSERTし、COMMITした直後の説明はどれか。別のDMLやDDLは実行しない。 CREATE GLOBAL TEMPORARY TABLE work_ids (id NUMBER) ON COMMIT DELETE ROWS;
A
このセッションでCOUNT(*)は2、COMMITで他のセッションにも2行公開される
通常の永続表のデータ公開とは異なります。一時表データはセッション固有で、この指定ではCOMMIT時に消えます。
B
COUNT(*)は2のままで、セッション終了時だけ削除される
これはON COMMIT PRESERVE ROWS側の寿命です。本問はDELETE ROWSです。
C
このセッションでCOUNT(*)は0、表定義は残る★ 正解
DELETE ROWSによる行の寿命と、表定義の寿命を分けています。
D
表定義もCOMMITで削除され、同じ表名へSELECTできなくなる
グローバル一時表の定義は残ります。私有一時表のON COMMIT DROP DEFINITIONと混同しています。
解説
ON COMMIT DELETE ROWSはトランザクション単位の一時データを指定します。COMMITでこのセッションの行はなくなりますが、グローバル一時表の定義は残ります。PRIVATE TEMPORARYの定義寿命の指定とは別です。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiで、通常の永続表t(id PRIMARY KEY, amount NUMBER)の(1,100)はCOMMIT済みである。同一セッションで次を順に実行し、CREATE TABLEも成功した。自動COMMITはOFF、別セッションの更新やトリガーはない。最後のtのamountとnew_marker表の状態はどれか。
UPDATE t SET amount = 150 WHERE id = 1;
CREATE TABLE new_marker (id NUMBER);
ROLLBACK;
問題 2
Oracle AI Database 26aiで次の表を作成した。列qtyにNOT NULL制約はなく、他の制約・トリガーもない。次のA、Bをそれぞれ実行した場合の成否はどれか。
CREATE TABLE stock (qty NUMBER CHECK (qty > 0));
A: INSERT INTO stock(qty) VALUES(NULL);
B: INSERT INTO stock(qty) VALUES(-1);
問題 4
Oracle AI Database 26aiで通常表staff(emp_id PRIMARY KEY, dept_id NUMBER)に(1,10)だけがある。次の単純で更新可能なビューを作成済みで、INSTEAD OF等のトリガーや追加制約はない。続くUPDATEの説明はどれか。
CREATE VIEW dept10_staff AS
SELECT emp_id, dept_id FROM staff WHERE dept_id = 10
WITH CHECK OPTION;
UPDATE dept10_staff SET dept_id = 20 WHERE emp_id = 1;