|
意思是把循环条件改成:
for i in 1..24 loop
for j in i+1..25 loop
for k in j+1..26 loop
..........
这样你的if就可以去掉。
定义一个基于d%rowtype的数组,在insert的地方,修改成往数组中增加一条记录。数组满了之后再用FORALL插入,这比一个一个插入要快。
我那个SQL方法不能保证比PLSQL快,如果你有兴趣可以自己修改比较。
如果是12C版本,SQL 方法可以简化成:
select i,j,k
from (SELECT LEVEL i from dual connect by level<=10)
,LATERAL (SELECT i + LEVEL j from dual connect by level<=11 - i)
,LATERAL (SELECT j + LEVEL k from dual connect by level<=12 - j) ;
select i,j,k
from (SELECT LEVEL i from dual connect by level<=10)
cross apply (SELECT i + LEVEL j from dual connect by level<=11 - i)
cross apply (SELECT j + LEVEL k from dual connect by level<=12 - j) ;
代码规律是显而易见的,自己看懂了往后面加就行了。
|
|