|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Объявляю курсор: Код: plsql 1. 2. 3.
Селект пишет в курсор AM следующие строки с апдейтами: Код: plsql 1.
Таких апдейтов много. Далее объявляем переменную proc_str AM%ROWTYPE; и далее Код: plsql 1. 2. 3. 4.
Подскажите, пожалуйста, каким образом мне можно запустить апдейты в теле цикла LOOP командой EXEC? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 14:49 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, EXECUTE IMMEDIATE ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 14:51 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
yens_gjytk, да, сорри, я ошибся, спасибо Делаю так Код: plsql 1.
в теле LOOP, но в ответ: Error report - ORA-06550: Строка 34, столбец 23: PLS-00382: выражение неправильного типа ORA-06550: Строка 34, столбец 4: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action: Может быть надо как-то преобразовать proc_str перед попыткой его выполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 14:57 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, proc_str имеет тип RECORD, вам нужно извлечь из этой записи поле, содержащее текст команды. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:05 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, proc_str AM% ROWTYPE Вам надо поле (строку с апдейтами) .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:05 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Stax, спасибо, извиняюсь, не силен в PL/SQL. Подскажите, пожалуйста, могу ли объявить так? Код: plsql 1.
После такого изменения скрипта, выходит ошибка на строке кода Код: plsql 1.
: Error report - ORA-00933: неверное завершение SQL-предложения ORA-06512: на line 34 00933. 00000 - "SQL command not properly ended" *Cause: *Action: ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:17 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
yens_gjytk, Да, спасибо, не силен в PL/SQL, не подскажете, как можно извлечь? Буду премного благодарен) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:23 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, Покажите полностью определение курсора Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:25 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov Stax, спасибо, извиняюсь, не силен в PL/SQL. Подскажите, пожалуйста, могу ли объявить так? Код: plsql 1.
тогда и DECLARE CURSOR AM IS SELECT поле с текстом update FROM ... .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:26 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
yens_gjytk, Вот: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:27 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:28 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
yens_gjytk, Огромное спасибо, заработало ! Я пробовал без кавычек в script ! )) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 15:53 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
yens_gjytk, извиняюсь, закомментил строку Код: plsql 1.
поэтому всё и прошло нормально, с выводом Код: plsql 1.
Ошибка осталась (( Error report - ORA-00933: неверное завершение SQL-предложения ORA-06512: на line 34 00933. 00000 - "SQL command not properly ended" *Cause: *Action: ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:22 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Выведу сюда весь скрипт, почистил от всего ненужного. Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:26 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov yens_gjytk, Огромное спасибо, заработало ! Я пробовал без кавычек в script ! )) Database Object Names and Qualifiers Nonquoted identifiers are not case sensitive. Oracle interprets them as uppercase. Quoted identifiers are case sensitive. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:30 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov, EXECUTE IMMEDIATE rtrim(proc_str."script" , ';'); ps ой, копию CMS_RBRU.T_PE_COBJECT хоть сделайте, а то можно наменять с нашими советоми ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:33 |
|
Как можно выполнить строку из курсора в PL/SQL
|
|||
---|---|---|---|
#18+
Igor Karmanov yens_gjytk, извиняюсь, закомментил строку Код: plsql 1.
поэтому всё и прошло нормально, с выводом Код: plsql 1.
Ошибка осталась (( Error report - ORA-00933: неверное завершение SQL-предложения ORA-06512: на line 34 00933. 00000 - "SQL command not properly ended" *Cause: *Action: Код: plsql 1.
EXECUTE IMMEDIATE Statement Except for multi-row queries, the dynamic string can contain any SQL statement (without the final semicolon) or any PL/SQL block (with the final semicolon). The string can also contain placeholders for bind arguments. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:38 |
|
|
start [/forum/topic.php?fid=52&fpage=9&tid=1879774]: |
0ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
65ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
355ms |
get tp. blocked users: |
2ms |
others: | 366ms |
total: | 843ms |
0 / 0 |