|
|
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Суть такова : есть процедура , в которой поочерёдно делаются insert ....select .... из основной базы в архив .... в архиве есть последовательность , так вот запросы в процедуре создаются динамически и выполняются через EXECUTE IMMEDIATE , в одном запросе выполняется select rmo.vk_wav_seq.nextval@ ,а в другом select rmo.vk_wav_seq.currval@ так вот во втором запросе возникает EXCEPTION и процедура обламывается с ORA-08002: последоват. VK_WAV_SEQ.CURRVAL ещё не определён в этом сеансе ORA-02063: предшествующий line из [имя].[домен] result = -8002 как можна побороть эту ошибку ? помогите советом .... мож чё нить не так делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 13:54 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Вывод: нельзя делать select seq.currval, если в этой сессии ни разу не выполнялось select seq.nextval ------------------------------------------------------- Кто людям помогает - тот тратит время зря. (с) Шапокляк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 14:27 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Для того чтобы выполнилось SQ_CONTRACT.NEXTVAL необходимо в текущей сесии выполнить хотя бы один раз SQ_CONTRACT.nextval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 14:28 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Pavel Zenkevich Код: plaintext 1. 2. 3. 4. 5. это я тоже читал .... но тогда чем характеризуется сессия ? одним запросом (динамическим) ? Pavel Zenkevich Вывод: нельзя делать select seq.currval, если в этой сессии ни разу не выполнялось select seq.nextval или всё таки пределами процедуры ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 14:38 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Пределами сесии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:04 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#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. То есть curval определен во всей сессии, а не локально в процедуре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:11 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
grom66Пределами сесии. логично , а сессия чем определяется ? разве хранимая процедура -- это не одна сессия ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:11 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
waspwortТо есть curval определен во всей сессии, а не локально в процедуре я об этом и говорю , поэтому и не могу понять причину ошибки ..... :-? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:13 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
kosiakвозникает EXCEPTION и процедура обламывается с ORA-08002: последоват. VK_WAV_SEQ.CURRVAL ещё не определён в этом сеансе ORA-02063: предшествующий line из [имя].[домен]как можна побороть эту ошибку ? помогите советом И что постоянно "обламывается"? Суть в том, что последовательность удалённая . Возможно, между двумя запросами соединение с удалённой БД было разорвано и автоматически восстановлено. В качестве workaraund-а: nextval можно сохранить в переменной, с которой впоследствии и работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:19 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#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. Может есть смысл показать текст процедуры? ------------------------------------------------------- Кто людям помогает - тот тратит время зря. (с) Шапокляк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:20 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:20 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
хм, кстати да, странная фишка с этим динамическим sql. вот ясоздаю 2 процедуры Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. далее по очереди вызываю их в одном сеансе сначала p потом p1. так вот, в этом виде все работает нормально, а если раскомментариваю строку с динамическим вызовом, то ругается что curval не определен в данной сессии. Из-за чего такое могет быть??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:36 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
waspwortхм, кстати да, странная фишка с этим динамическим sql. вот ясоздаю 2 процедуры Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. да, во второй процедуре, там nextval читать как currval... далее по очереди вызываю их в одном сеансе сначала p потом p1. так вот, в этом виде все работает нормально, а если раскомментариваю строку с динамическим вызовом, то ругается что curval не определен в данной сессии. Из-за чего такое могет быть??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:37 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Pavel Zenkevich Может есть смысл показать текст процедуры? всю не могу, сорри, но этого куска должно хватить Код: 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. надеюсь вы рассмотрите последовательность ..... вот где-то так ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 15:43 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
Эээ... Проще поюзать RETURNING INTO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:04 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
он жеЭээ... Проще поюзать RETURNING INTO. с этого места поподробнее пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:14 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
kosiak он жеЭээ... Проще поюзать RETURNING INTO. с этого места поподробнее пожалуйста матчасть..... Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:21 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
проблема в том , что запросы строятся динамически ...... а инкремент нужен ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:29 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
kosiakпроблема в том , что запросы строятся динамически ...... а инкремент нужен ..... Насколько я понял, первый инсерт у вас вставляет одну строку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:32 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
да, там вставляется по строке в каждую таблицу за один вызов процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:49 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
! ElicСуть в том, что последовательность удалённая . Возможно, между двумя запросами соединение с удалённой БД было разорвано и автоматически восстановлено. В качестве workaraund-а: nextval можно сохранить в переменной, с которой впоследствии и работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:51 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
то есть нужно искать другой путь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 16:58 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
kosiakто есть нужно искать другой путь ? А чем returning или select into не устраивает то??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 17:01 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
waspwortА чем returning или select into не устраивает то??? я объясню ..... путь к базе передаётся в виде переменной , то есть строка запроса формируется динамически , для того чтобы сделать select into нужно в динамическую строку вплести переменную ,или же создавать курсор, поэтому я и прошу мне помочь , так как не до конца понимаю , как правильно это сделать ...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 17:31 |
|
||
|
Проблема с Seq.currval
|
|||
|---|---|---|---|
|
#18+
kosiak waspwortА чем returning или select into не устраивает то??? я объясню ..... путь к базе передаётся в виде переменной , то есть строка запроса формируется динамически , для того чтобы сделать select into нужно в динамическую строку вплести переменную ,или же создавать курсор, поэтому я и прошу мне помочь , так как не до конца понимаю , как правильно это сделать ...... и судя по всему global_archname и есть та самая переменная? А сколько она может принимать значений? Если немного, то почему бы не написать в лоб, что нить вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. или я опять чего не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33060190&tid=1885444]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
386ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 645ms |

| 0 / 0 |
