|
как получить результат select в хранимой процедуре?
|
|||
---|---|---|---|
#18+
хранимая процедура CREATE OR REPLACE FUNCTION test1(user_id integer) RETURNS TABLE( firstname character varying) AS $$ BEGIN RETURN QUERY SELECT 'test' as firstname ; END; $$ LANGUAGE plpgsql; при вызове select * from test1(1) дает ошибку ERROR: structure of query does not match function result type DETAIL: Returned type unknown does not match expected type character varying in column 1. CONTEXT: PL/pgSQL function test1(integer) line 3 at RETURN QUERY. (Line 1) что исправить и как? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 22:19 |
|
как получить результат select в хранимой процедуре?
|
|||
---|---|---|---|
#18+
sqldevelop18, вы выбрали слишком простой пример. Да, пример может быть слишком простым. В текущем виде парсер не понимает, какого типа должно быть 'test' (оно считается unknown псевдотипом). То что у него есть единственная подсказка - выходной тип, к сожалению, не помогает. Поэтому придётся руками привести к нужному: Код: sql 1. 2.
Если в более сложном варианте вы попробуете читать с таблицы - там уже найдётся информация о типах данных. PS: кстати, если в хранимке только один запрос - выгоднее использовать language sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 22:33 |
|
как получить результат select в хранимой процедуре?
|
|||
---|---|---|---|
#18+
Melkij, благодарю несколько вложенных sql что тогда лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2018, 11:09 |
|
как получить результат select в хранимой процедуре?
|
|||
---|---|---|---|
#18+
MelkijPS: кстати, если в хранимке только один запрос - выгоднее использовать language sql. Это, как минимум, спорное утверждение. Например потому, что plpgsql кеширует планы запросов и иногда выгоднее для частых запросов использовать процедуры на plpgsql именно по этой причине. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2018, 14:05 |
|
|
start [/forum/topic.php?fid=53&fpage=56&tid=1995822]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 442ms |
0 / 0 |