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

Dee*_*mar 1 oracle plsql

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

integer,isPrime,isOdd,isEven,digitCount;
Run Code Online (Sandbox Code Playgroud)

我想使用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;
Run Code Online (Sandbox Code Playgroud)

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

Noe*_*oel 5

您可以在单个查询中执行此操作.

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

commit;
Run Code Online (Sandbox Code Playgroud)

LEVEL是用于分层查询的伪列.

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