日期:2014-05-17  浏览次数:21082 次

这段匿名块中, null 代表什么呢? 为什么可以删除TEST表呢?

这段匿名块中, null 代表什么呢? 为什么可以删除TEST表呢? 

BEGIN
  FOR i IN (SELECT NULL FROM user_tables where table_name ='TEST') loop
  EXECUTE IMMEDIATE 'drop table TEST';
  END LOOP;
END;

------解决方案--------------------
这里的null使用任何变量或者常量都可以;只是一个占位符号;
for循环从第一行执行到最后一行,每次循环都会执行for内部的sql语句;
这里明显最多有一行数据,所以,下面的execute immediate 'drop table test'至多执行一次。