打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
趣味竞答:用动态SQL执行DDL

编辑手记:周四我们又见面啦!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

知其然并要知其所以然,欢迎大家积极思考互动,或直接在大讲堂群参与讨论。

答案将在明日晨读公布

如何加入"云和恩墨大讲堂"微信群

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
sql server transaction
SQL Server存储过程创建和修改
c加加 set和map
mysql 存储过程实例(事务回滚)
关于批量插入数据之我见(100万级别的数据,mysql)
处理 Oracle SQL in 超过1000 的解决方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服