编辑手记:周四我们又见面啦!newkid说,世界上只有两种编程方法:Oracle的方法和错误的方法。他本人对SQL的研究极为深入,这种深入,让他真正掌握了SQL的乐趣,通过各种各样的尝试,给我们展现了一个妙趣横生的SQL世界。感谢newkid授权,今天我们来看一个跟动态SQL有关的例子。
下列语句执行之后屏幕上会显示什么?
CREATE TABLE plch_ids (id NUMBER)
/
BEGIN
INSERT INTO plch_ids (id) VALUES (1);
INSERT INTO plch_ids (id) VALUES (2);
ROLLBACK;
END;
/
DECLARE
l_count INTEGER;
BEGIN
SELECT COUNT (*) INTO l_count FROM plch_ids;
DBMS_OUTPUT.put_line (l_count);
END;
/
BEGIN
INSERT INTO plch_ids (id) VALUES (3);
INSERT INTO plch_ids (id) VALUES (4);
EXECUTE IMMEDIATE 'ALTER TABLE plch_ids ADD emp_name VARCHAR2(10)';
ROLLBACK;
END;
/
DECLARE
l_count INTEGER;
BEGIN
SELECT COUNT (*) INTO l_count FROM plch_ids;
DBMS_OUTPUT.put_line (l_count);
END;
/
(A) 2、2
(B) 2、0
(C) 0、0
(D) 0、2
知其然并要知其所以然,欢迎大家积极思考互动,或直接在大讲堂群参与讨论。
答案将在明日晨读公布
如何加入"云和恩墨大讲堂"微信群
联系客服