Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане. В MS SQL SERVER можно сделать такой финт, например, в некоторой таблице содержатся имена хранимых процедур. Все хранимые процедуры имеют одну и ту же сигнатуру (т.е. количество и типы аргументов одинаковые у всех). Если в строковую переменную получить имя этой процедуры, тогда можно запустить процедуру, указав имя переменной. Код: sql 1. 2. 3. 4. 5. Как можно сделать аналогичный трюк в plpgSQL (PostgreSQL 14) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2021, 08:53 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Сотрудник Главного Управления Здравствуйте, уважаемые форумчане. В MS SQL SERVER можно сделать такой финт, например, в некоторой таблице содержатся имена хранимых процедур. Все хранимые процедуры имеют одну и ту же сигнатуру (т.е. количество и типы аргументов одинаковые у всех). Если в строковую переменную получить имя этой процедуры, тогда можно запустить процедуру, указав имя переменной. Код: sql 1. 2. 3. 4. 5. Как можно сделать аналогичный трюк в plpgSQL (PostgreSQL 14) ? через выполнение динамических команд https://www.postgresql.org/docs/12/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN PS: что то многовато последнее время вопросом про как mssql код на постгрес переводить. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2021, 09:21 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, извините, я не совсем понял, по ссылке, указанной вами, примеры, как с помощью EXECUTE выполнить различные команды типа SELECT, INSERT, UPDATE но мне нужны не эти команды, а именно запуск существующих хранимых процедур. И, если можно, покажите пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2021, 09:41 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Сотрудник Главного Управления Maxim Boguk, извините, я не совсем понял, по ссылке, указанной вами, примеры, как с помощью EXECUTE выполнить различные команды типа SELECT, INSERT, UPDATE но мне нужны не эти команды, а именно запуск существующих хранимых процедур. И, если можно, покажите пример. А как по вашему хранимые процедуры запускаются по синтаксису? И что вам мешает через EXECUTE вызвать хранимую процедуру? Код: sql 1. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2021, 11:10 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2021, 12:50 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Вопрос немного усложняется. Во-первых: работает не так, как вы написали, а вот так: Код: plsql 1. 2. Во-вторых: самый последний параметр процедуры - имеет модификатор INOUT. Так вот, выходное значение не попадает в arg4, хотя процедура выполняется. Как сделать так, чтобы выходное значение записывалось в arg4 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2022, 15:24 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Сотрудник Главного Управления Maxim Boguk, Вопрос немного усложняется. Во-первых: работает не так, как вы написали, а вот так: Код: plsql 1. 2. Во-вторых: самый последний параметр процедуры - имеет модификатор INOUT. Так вот, выходное значение не попадает в arg4, хотя процедура выполняется. Как сделать так, чтобы выходное значение записывалось в arg4 ? call это для процедуры perform для функции поскольку 90% pl/pgsql кода он на функциях (процедуры - для очень особых случаев и только с 12 версии) - я привёл пример который обычно работает. про inout в сочетании с динамическими вызовами - я бы попробовал следующим образом (важно - я НЕ ПРОВЕРЯЛ идея на вскидку выглядит рабочей): Код: sql 1. Если не работает - тогда интересно будет... -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2022, 18:34 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2022, 07:22 |
|
||
|
Запуск процедуры через переменную
|
|||
|---|---|---|---|
|
#18+
Сотрудник Главного Управления, Если на выход только одина параметр, то наверное должно сработать так Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2022, 08:59 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=4&tid=1993719]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 143ms |

| 0 / 0 |
