|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Господа, подскажите пожалуйста. Требуется хранимая функция, которая выдает на вход несколько строковых параметров. В Oracle и MS SQL делал без проблем. А тут что-то не выходит. При попытке вызова выдается ошибка: ERROR: function tems.getcomponentconnectionparams(ptestenvid => integer, pconnectionidentifier => unknown, pversionno => character varying, phostname => character varying, pipaddress => character varying, punifiedhostname => character varying, pportno => integer, ptns => character varying, pdbname => character varying, pschemaname => character varying, ptargetvalue => character varying, ploginname => character varying, ppasswordvalue => character varying, perrormessage => character varying) does not exist SQL state: 42883 Hint: No function matches the given name and argument types. You might need to add explicit type casts. Context: PL/pgSQL function tems.doit() line 21 at PERFORM Хотя функция компилится без ошибок Объявлена функция так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
В конце - Return без параметров Как сделать, чтобы возвращались параметры ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 16:14 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Agers, Он же тебе говорит, что нет такой функции, которую ты пытаешься вызвать. Возможно соль в: авторpconnectionidentifier => unknown ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 16:23 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Alex__kK, Я то же перевел сообщение. Вопрос в том, что функция существует и отображается в списке функций в PGAdmin. Но вызов не проходит. Вызываю так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 16:26 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Agers, А если 'IBS_OSB_WS' привести к varchar явно? типа 'IBS_OSB_WS'::varchar ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 16:36 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Alex__kK, Спасибо за идею. Объявил переменную и указал в качестве параметра. Слово unknown исчезло, но это не помогло. ERROR: function tems.getcomponentconnectionparams(ptestenvid => integer, pconnectionidentifier => character varying, pversionno => character varying, phostname => character varying, pipaddress => character varying, punifiedhostname => character varying, pportno => integer, ptns => character varying, pdbname => character varying, pschemaname => character varying, ptargetvalue => character varying, ploginname => character varying, ppasswordvalue => character varying, perrormessage => character varying) does not exist LINE 1: SELECT tems.getcomponentconnectionparams( ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. QUERY: SELECT tems.getcomponentconnectionparams( ptestenvid := 5, pconnectionidentifier := vconnectionidentifier, pversionno := vVersionNo, phostname := vHostName, pipaddress := vIPAddress, punifiedhostname := vUnifiedHostName, pportno := vPortNo, ptns := vTNS, pdbname := vDBName, pschemaname := vSchemaName, ptargetvalue := vTargetValue, ploginname := vLoginName, ppasswordvalue := vPasswordValue, perrormessage := vErrorMessage ) CONTEXT: PL/pgSQL function tems.doit() line 22 at PERFORM ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 16:56 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Agers, Проблема тогда возможно в том, что вы эту функцию вызываете через perform, а функция возвращать должна record. В постгресе нет возможности вернуть в результате функции одно, а через out параметры еще что-то (как, например в Oracle). В постгресе в out параметрах как бы конкретизируются названия и типы полей возвращаемых в record. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 17:18 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Alex__kK, Спасибо. А что тогда в return указать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 17:32 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Agers, вот похожий пример в доке Пример 41.9. Портирование функции, создающей другую функцию, из PL/SQL в PL/pgSQL: https://postgrespro.ru/docs/postgrespro/9.6/plpgsql-porting.html#plpgsql-porting-ex3 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 17:36 |
|
Работа с выходными параметрами функций в PostgreSQL
|
|||
---|---|---|---|
#18+
Alex__kK, Спасибо ! Разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2017, 17:53 |
|
|
start [/forum/topic.php?fid=53&fpage=79&tid=1996753]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 132ms |
0 / 0 |