fab*_*onr 1 postgresql plpgsql
我刚刚定义了这个函数来返回给定表中的所有列名:
create or replace function GET_COLUMNS(in tbl_name character varying(30))
returns table(colunas character varying) as $$
begin
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'Main'
AND table_name = tbl_name;
end;
$$ language 'plpgsql'
Run Code Online (Sandbox Code Playgroud)
但是当我使用它调用它时,select * from get_columns('tabfuncionarios');
我收到了以下错误:
Run Code Online (Sandbox Code Playgroud)ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL function get_columns(character varying) line 3 at SQL statement
我正在使用postgresql 9.4.5
版本
你不需要plpgsql
这个。一个普通的sql
函数会做:
create or replace function GET_COLUMNS(in tbl_name character varying(30))
returns table(colunas character varying)
as
$$
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'Main'
AND table_name = tbl_name;
$$
language sql;
Run Code Online (Sandbox Code Playgroud)
另外:语言名称是一个标识符。不要把它放在单引号中。