2016-03-16 27 views
-1

試圖使用循環將值插入表中。PL/SQL LOOP增量不可預知結果

for循環的代碼是未來

DECLARE 
ID_src number; 
BEGIN 
    FOR i IN 1..10000 
    LOOP 
    ID_src := i; 
     INSERT INTO src_facts values (ID_src); 
    END LOOP; 
END; 

從我的觀點的輸出應該是:

1 
2 
3 
... 
10000 

但我回顧不可預知的後果。它是:

enter image description here

你能解釋一下我做錯了什麼?

+1

你的意思是表數據沒有排序1,2,3,...,10000?沒有理由應該或應該按照排序順序返回,除非您使用ORDER BY對其進行顯式排序。在SQL Developer中,您可以單擊列標題對數據進行排序。表格不是固有排序的。 –

回答

1

結果不是不可預測的。你只需要order by

select * 
from src_facts 
order by id_src; 

SQL表代表無序套。除非包含ORDER BY,否則不能保證結果集中行的順序。