|
|
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Помогите советом! Есть таблица документов. Мне надо вывести те документы, которых нет в таблице. Например ввели документы от 1 до 100, а 5-й и 22-й забыли или с ним что-то случилось по дороге. Мне хотелось бы написать Select выводящий эти номера. Возможно ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 14:20 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
version of Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 14:36 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Oracle 8i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 14:39 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
8.1.5, 8.1.6, 8.1.7 ??? я спрашиваю потому что с версии 8.1.6 появились аналитические функции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 14:46 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Мы работаем с 8.1.7 , но можем впринципе перейти и на 9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 14:50 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ариант 1 в моем случае оказался немного дешевле/быстрее, у вас это будет зависит от характеристик таблицы с документами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 15:43 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! Но к сожалению такой вариант работал у меня бесконечно долго, пришлось его убить не дождавшись результата. Наверное из-за огромного количества документов. Максимальный номер документа - 100 000 177. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 16:32 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
если задача одноразовая, то ИМХО проще и быстрее вывести все id в файл и обработать, например, Перлом. как вариант запроса с аналитической функцией можно предложить следуещее (правда, не уверен, что это быстрее чем у Макса :-): Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 17:20 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Declare n number := 100 000 177; begin while(n > =0) Loop n := n - 1; begin Select 1 from my_doc where doc_id = n; exception when NO_DATA_FOUND Then dbms_output.put_line('Document No '||to_char(n)); end; End Loop; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 18:25 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Declare n number := 100 000 177; m number; begin while(n > =0) Loop n := n - 1; begin Select 1 Into m from my_doc where doc_id = n; exception when NO_DATA_FOUND Then dbms_output.put_line('Document No '||to_char(n)); end; End Loop; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 18:26 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
тогда я бы попробовал след. подход: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 18:29 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
мда, тока памяти на коллекции может не хватить... PS а вообще если эта задача разовая, то я бы вибрал вариант, кот. предложил .dba , то есть обрарботка перлом - дешево, быстро и сердито... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 18:40 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
-- Макс у тебя была неплохая идея, но ее надо выполнят наоборот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. И далее select который выдает все номера недостающих доккументов: Код: plaintext 1. 2. 3. 4. 5. В данном случае на perl валится необязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 19:12 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
Этот select можно сделать попроще: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 19:18 |
|
||
|
Вывод пропавших документов
|
|||
|---|---|---|---|
|
#18+
2 ShgGena, согласен, мне так больше нравится, нo результатирующий "select" я бы по-другoму написал: Код: plaintext 1. 2. 3. 4. 5. в споре рождается истина ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2003, 19:21 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2801&tid=1991472]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 302ms |

| 0 / 0 |
