使用for循环在PL / SQL块中插入记录会产生错误

时间:2013-07-17 05:38:48

标签: oracle plsql

我正在创建一个名为'integer_properties'的inetegers表,从1到1000表列是:

integer,isPrime,isOdd,isEven,digitCount;

我想使用for循环插入记录,我试过跟随,但错误说:'缺少SELECT关键字'

BEGIN
   for k in 1..1000
   loop
      insert into integer_properties(integer,
                                     isPrime,
                                     isEven,
                                     isOdd,
                                     digitCount)
         values(k,null,null,null,null);
   end loop;
END;

使用DDL命令输入1000个数字而不使用PL / SQL块是很繁琐的。我试图在整数列中输入循环变量值。有可能吗?

1 个答案:

答案 0 :(得分:5)

您可以在一次查询中执行此操作。

insert into integer_properties
select level, null, null, null, null
from dual
connect by level <= 1000;

commit;

LEVEL是分层查询中使用的伪列。

您的代码似乎很好,但使用INTEGER作为列名可能会导致问题。如果用双引号括起来,它会正常工作。因此,最好避免在命名列时使用关键字。