这里我需要用一些参数来调用一个函数。
例子:
功能:
create or replace function testfunction(ids int,pcname varchar)
returns void as
$$
declare
sql varchar;
qu varchar := 'tabletemp_';
begin
qu := qu ||ids ||'_'|| pcname;
sql := 'Drop view if exists '||qu;
raise info '%',sql;
execute sql;
end;
$$
language plpgsql;
调用函数:
select testfunction(1,'abc-pc');
错误:
ERROR: syntax error at or near "-"
Drop view if exists tabletemp_1_abc-pc
^
问题:调用函数时如何传递此类参数?
最佳答案
你忘了quote_ident
。
sql := 'Drop view if exists '|| quote_ident(qu);
但最好使用
format
: sql := format('Drop view if exists %I', qu || ids ||'_'|| pcname);
关于postgresql - PostgreSQL:错误:“-”或附近的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24904568/