Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
Есть функция которая в зависимости от параметра seq_id возвращает селект с соответствующим этому seq_id значением:

SELECT
 decode( 
                seq_id,
                1,oas.seq_1.nextval,
                2,oas.seq_2.nextval,
                3,oas.seq_3.nextval,
                4,oas.seq_4.nextval,
                5,oas.seq_5.nextval
              )  
FROM
    T  
Проблема в том что хоть этот decode и возвращает нужный сиквенс другие сиквенсы тоже увеличиваются. С кейзом таже фигня,
можно это как нибудь решить по другому?
21 окт 11, 09:47    [11476562]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
JaRo
Member

Откуда:
Сообщений: 1659
отказаться от функции - вызывать напрямую то, что нужно - там где, нужно.
21 окт 11, 10:02    [11476639]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
а где тут функция?
21 окт 11, 10:04    [11476650]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
нужно именно в селекте возаращать...я саму ситуацию описал зачем вам функция?)
21 окт 11, 10:16    [11476712]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
JaRo
отказаться от функции - вызывать напрямую то, что нужно - там где, нужно.


либо наоборот, сделать свою функцию, отказавшись от decode, case.

2 автор: чем вызван такой подход?
21 окт 11, 10:18    [11476721]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
comphead,

какой подход? что именно не так?
21 окт 11, 10:21    [11476741]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
miklouha
comphead,

какой подход? что именно не так?



что за необходимость получать по условию значение разных последовательностей?
21 окт 11, 10:24    [11476757]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
comphead,

селект возвращает набор данных для печатной формы. Есть номер печатной формы который для каждой организации должен быть уникальным и увеличиваться на единицу. В зависимости какой id организации передаемый в функцию должны получить соответствующий номер.
21 окт 11, 10:36    [11476822]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
miklouha
...номер печатной формы который для каждой организации должен быть уникальным и увеличиваться на единицу...

Вы в курсе, что sequence не обеспечит это условие?
21 окт 11, 10:42    [11476856]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Data corruption
Guest
miklouha,

автор
Есть функция которая в зависимости от параметра seq_id возвращает селект с соответствующим этому seq_id значением:


зря сиквенс для этого нумератора используете.
21 окт 11, 10:46    [11476879]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
а что лучше тогда использовать?
21 окт 11, 10:57    [11476942]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
такое дебильное ТЗ что поделаешь, эти документы вообще не сохраняются нигде, просто при печати нужен уникальный номер им(
21 окт 11, 10:58    [11476946]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
miklouha,

что мешает в функции сделать if с 6ью select`ами из нужных последовательностей?)
дырки в любом случае будут)) кстати уже должны были появится.. и скорее всего будут кратны 20))
21 окт 11, 10:59    [11476952]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Data corruption
Guest
Data corruption,

про конвейерные функции забыл, хотя ими здесь и не пахнет :)
21 окт 11, 11:00    [11476957]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
и еще вопрос, а что мешает использовать 1 последовательность? религия?)
21 окт 11, 11:00    [11476958]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Data corruption
Guest
Vint,

насколько я понял, человек хочет получить уникальные номера в разрезе организации.
поэтому у него и 5 условий.

miklouha,

почему не хотите создать таблицу хранящую нумерацию для каждой организации ? там и дырки бы правили, которые как заметил Vint по любому возникнут.
21 окт 11, 11:08    [11477019]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
Data corruption
и как же будут неуникальны номера для разных организаций полученных из одной последовательности?)))))
21 окт 11, 11:09    [11477031]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Data corruption
Guest
Vint,

ему нужны именно последовательные номера, насколько я понимаю :)
т.е. в организации1 завели 2 документа за день, в организации2 завели 100500 документов.
на след день, он должен для организации1 выдать номер 3, а для организации2 выдать 100501.
21 окт 11, 11:13    [11477064]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
Data corruption
Vint,

насколько я понял, человек хочет получить уникальные номера в разрезе организации.
поэтому у него и 5 условий.

miklouha,

почему не хотите создать таблицу хранящую нумерацию для каждой организации ? там и дырки бы правили, которые как заметил Vint по любому возникнут.

Правильно поняли)) я сам за таблицу чтобы хранить вообще все эти документы но нельзя(( какие дырки могут возникнуть?
21 окт 11, 11:16    [11477098]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
Data corruption
Vint,

ему нужны именно последовательные номера, насколько я понимаю :)
т.е. в организации1 завели 2 документа за день, в организации2 завели 100500 документов.
на след день, он должен для организации1 выдать номер 3, а для организации2 выдать 100501.


Все так.
21 окт 11, 11:16    [11477108]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
Косяк есть это точно, главный в том что если для один раз напечатать документ и будет номер 1 то в следующий раз если распечатать этот же документ у него будет уже номер 2. ТЗ такое кривое, я им это замечание сделал, но их это устраивает.
21 окт 11, 11:18    [11477125]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
miklouha
потрудитесь воспользоваться поиском и найти похожие тему.. уже сто раз прожёвывали, ругались и воевали...
таблица:
идентификатор оргазинации, последний номер
и блокировку строки для инкремента при печати. иначе дырки)))
21 окт 11, 11:20    [11477134]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
miklouha
Member

Откуда:
Сообщений: 254
Раз хотят дырки я им дам дырки, таблицы нельзя создавать в этой схеме, политика поставщика БД, если что то поменяем то поддержки больше не будет.
21 окт 11, 11:25    [11477184]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
а что мешает создать таблицы в другой схеме и дать права это?))))
21 окт 11, 11:26    [11477194]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с sequence  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
miklouha
политика поставщика БД, если что то поменяем то поддержки больше не будет.

даже свои объекты создавать нельзя? сурово :)
21 окт 11, 11:28    [11477212]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить