Commit In循环给出了错误的输出?

Vin*_*eet 2 oracle plsql

我试图在表消息中插入除1和10之外的1到10个数字,但是当我从表mesages1中获取它时,输出按此顺序输出4 5 7 9 10 1 2 3它应该是这样的1 2 3 4 5 7 9 10根据逻辑,当我省略提交或将其放在其他地方时,它工作正常,请解释为什么会发生?这是我的代码.

BEGIN
    FOR i IN 1..10
    LOOP
    IF i<>6 AND i<>8
    THEN
    INSERT INTO messages1
    VALUES (i);
    END IF;
    commit;
    END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

select*from messages1;

Mat*_*nen 8

如果不使用ORDER BY,则应假定结果显示的顺序未定义.结果通常与插入的顺序相同,但不保证.

最重要的是,如果您希望按特定顺序获得结果,请使用ORDER BY.