我创建了一个动态函数 . 我动态地获得了表名的一部分 . 该功能已成功创建 . 但是当我执行该功能时 . 我收到一个错误 . 我怎么解决这个问题?我用这个函数调用
select * from dwgcould.getlatlngcenter(2000653);
CREATE OR REPLACE FUNCTION dwgcould.getlatlngcenter(IN pro_id integer,
OUT lat_center double precision, OUT lng_center double precision)
AS $$
BEGIN
EXECUTE 'SELECT st_x(st_centroid( st_transform(geom,4326))) as lng_center ,st_y(st_centroid( st_transform(geom,4326))) as lat_center
FROM dwgcould.adpes_v1_' || quote_ident(pro_id) || '_line limit 1';
END;
$$ LANGUAGE plpgsql;
错误代码是
错误:函数quote_ident(整数)不存在第2行:FROM dwgcould.adpes_v1_'|| quote_ident(pro_id)|| 'line ... ^提示:没有函数匹配给定的名称和参数类型 . 您可能需要添加显式类型转换 . QUERY:选择'SELECT st_x(st_centroid(st_transform(geom,4326)))为lng_center,st_y(st_centroid(st_transform(geom,4326)))为lat_center FROM dwgcould.adpes_v1'|| quote_ident(pro_id)|| '_line limit 1'语境:PL / pgSQL函数dwgcould.getlatlngcenter(整数)第4行EXECUTE语句******错误******错误:函数quote_ident(整数)不存在SQL状态:42883提示:没有函数匹配给定的名称和参数类型 . 您可能需要添加显式类型转换 . 上下文:PL / pgSQL函数dwgcould.getlatlngcenter(整数)第4行EXECUTE语句
另外我如何检查表是否存在?
1 回答
更好地使用格式,例如:
docs