plpgsql
2 отговора
217 прегледа
plpgsql
Kolegi niakoi da znae kak se manipulirat funkcii s parametri composite type.
Iskam funkcii koito imat za parametri composite type i vryshtat composite type.
Wyprosa e kak se izvikvat takiwa funkcii prez select i kak se poluchava resultata prez ODBC da rechem ili native API-to.
W dokumentaciata pishe za type_in i type_out funciite no ne se sehsta da gi vika.
Shte sym mnogo blagodaren za siakakvi idei. (Ako moga da izvikam funkciata prez psql or PgAdmina znachi shte moga i prez ODBC)
Iskam funkcii koito imat za parametri composite type i vryshtat composite type.
Wyprosa e kak se izvikvat takiwa funkcii prez select i kak se poluchava resultata prez ODBC da rechem ili native API-to.
W dokumentaciata pishe za type_in i type_out funciite no ne se sehsta da gi vika.
Shte sym mnogo blagodaren za siakakvi idei. (Ako moga da izvikam funkciata prez psql or PgAdmina znachi shte moga i prez ODBC)
Re: plpgsql
на бързо се сещам ето така (май имаше и един друг вариант, но след почивните дни .... ;-))))))
test=# create type test_type AS (id integer, name character varying);
CREATE TYPE
test=# create function test_type_function (param test_type) returns test_type AS $$ begin return param;end;$$ LANGUAGE plpgsql;
CREATE FUNCTION
test=# CREATE OR REPLACE FUNCTION test_input (integer, character varying) RETURNS test_type AS $$ SELECT $1 AS id, $2 AS name;$$ LANGUAGE sql;
CREATE FUNCTION
test=# select test_type_function((SELECT test_input(1, 'test')));
test_type_function
--------------------
(1,test)
(1 row)
test=# create type test_type AS (id integer, name character varying);
CREATE TYPE
test=# create function test_type_function (param test_type) returns test_type AS $$ begin return param;end;$$ LANGUAGE plpgsql;
CREATE FUNCTION
test=# CREATE OR REPLACE FUNCTION test_input (integer, character varying) RETURNS test_type AS $$ SELECT $1 AS id, $2 AS name;$$ LANGUAGE sql;
CREATE FUNCTION
test=# select test_type_function((SELECT test_input(1, 'test')));
test_type_function
--------------------
(1,test)
(1 row)
Re: plpgsql
няма отзиви :-) аз единствено се сетих, че не съм споменал един лесен вариант за съставяне на composite тип
със същите функциики от преди
test=# select test_type_function((1, 'test')::test_type);
test_type_function
--------------------
(1,test)
(1 row)
ако не е тва, което те интересува конкретизирай си въпроса
със същите функциики от преди
test=# select test_type_function((1, 'test')::test_type);
test_type_function
--------------------
(1,test)
(1 row)
ако не е тва, което те интересува конкретизирай си въпроса