|
|
|
новичок
      
участник
Last Login: 20.12.2001 14:37
Сообщ.: 8,
Visits: 89
|
|
Когда я пишу такой запрос: SELECT TABLE1_SEQ.NEXTVAL FROM TABLE1 выводятся несколько подряд (разное количество) чисел Мне интересно знать почему так происходит, и можно ли этого избежать. Заранее благодарю
|
|
|
|
|
Forum Guru
      
участник
Last Login: 28.12.2002 11:35
Сообщ.: 69,
Visits: 760
|
|
При обащенни TABLE1_SEQ.NEXTVAL из TABLE1_SEQ возвращается новое значение (старое значение + инкримента). При SELECT TABLE1_SEQ.NEXTVAL FROM TABLE1 к TABLE1_SEQ происходит обращение "количество записей в TABLE1" раз и формируется соотв. выборка. А в чем суть проблемы?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 17.04.2003 15:55
Сообщ.: 69,
Visits: 760
|
|
Суть проблемы, наверное, в том, что либо табличка "мутирует", то есть кол-во строк в ней каждый раз различается, либо, в зависимости от среды исполнения, на клиента возвращается разное кол-во записей.
Скорее всего ты GenBr, хотел сделать нумерацию строк в запросе. Для этого есть ораклиная функция row_number(), используй ее с partition и order by, посмотри синтаксис в SQL Reference, либо используй rownum. А сиквенс нужен для получения уникальных номеров, и обычно для записи их в первичные ключи.
|
|
|
|
|
новичок
      
участник
Last Login: 20.12.2001 14:37
Сообщ.: 8,
Visits: 89
|
|
Мне нужно было взять следующую (одну) запись из посл-сти в SQL-запросе. Я понял как это сделать (спасибо за ответы). Про роунум то я и не подумал...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 18.03.2003 10:55
Сообщ.: 83,
Visits: 914
|
|
А что классическое
SELECT sequence_name.NEXTVAL from DUAL;
не подходит ?
... либо я вопроса не понял ...
|
|
|
|