Порядок вычисления выражений в INSERT ... VALUES

hammersmith
Дата: 02.03.2007 15:52:20
Подскажите, пожалуйста, в каком порядке вычисляются выражения в VALUES clause оператора INSERT:

INSERT INTO T
(C_1, C_2)
values (expr1, expr2)
Jannny
Дата: 02.03.2007 16:01:58
А зачем?
Думаю, зашиваться на это не стоит.
hammersmith
Дата: 02.03.2007 16:22:29
Уточняющий вопрос:

Делаю

INSERT into T
(C_1, C_2)
values(SEQ_1.nextval, SEQ_1.nextval)

В результате в C_1, C_2 одинаковые значения!

Я никак не предполагал, что они будут одинаковыми!
Jannny
Дата: 02.03.2007 16:24:22
Это не уточняющий вопрос, а совсем другой вопрос :)
tru55
Дата: 02.03.2007 16:25:54
поищи по форуму, похожее обсуждалось, например, здесь
http://www.sql.ru/forum/actualthread.aspx?tid=392790&hl=nextval
dmidek
Дата: 02.03.2007 16:26:36
А так это другое дело. Довольно популярный вопрос.

Вот уважаемый softwarer подробно это объясняет
Kovalchuk Vitaly V
Дата: 02.03.2007 16:37:09
Тема уже подымалась :-)
create sequence SEQ1 minvalue 1 increment by 1;
select Seq1.Nextval,Seq1.Nextval from dba_objects where rownum < 5;

create sequence SEQ2 minvalue 1  increment by 2;
select  Seq2.Nextval, Seq2.CurrVal + 1 from dba_objects where rownum < 5;


даст совершенно ожидаеммый результат:
SQL> create sequence SEQ1 minvalue 1 increment by 1;

Sequence created.

SQL> select Seq1.Nextval,Seq1.Nextval from dba_objects where rownum < 5;

   NEXTVAL    NEXTVAL
---------- ----------
         1          1
         2          2
         3          3
         4          4

SQL> 
SQL> create sequence SEQ2 minvalue 1  increment by 2;

Sequence created.

SQL> select  Seq2.Nextval, Seq2.CurrVal + 1 from dba_objects where rownum < 5;

   NEXTVAL SEQ2.CURRVAL+1
---------- --------------
         1              2
         3              4
         5              6
         7              8
 
hammersmith
Дата: 02.03.2007 16:50:07
Спасибо за ответы. Особенно, за ссылку на softwarer.ru. Очень познавательно :)