私は動的関数を作成しました。動的にテーブル名の一部を取得します。関数が正常に作成されます。しかし、私はその機能を実行します。私はエラーが発生します。どうすればこの問題を解決できますか?私は、エラーコードがPostgresql関数の動的テーブルquote_identエラー
ERROR: function quote_ident(integer) does not exist LINE 2: FROM dwgcould.adpes_v1_' || quote_ident(pro_id) || '_line... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. QUERY: SELECT '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' CONTEXT: PL/pgSQL function dwgcould.getlatlngcenter(integer) line 4 at EXECUTE statement ********** Error ********** ERROR: function quote_ident(integer) does not exist SQL state: 42883 Hint: No function matches the given name and argument types. You might need to add explicit type casts. Context: PL/pgSQL function dwgcould.getlatlngcenter(integer) line 4 at EXECUTE statement
また、私はテーブルが存在するかどうかを確認するにはどうすればよいです
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;
で関数を呼び出しますか?
'場合(pg_tablesから選択数(1)ここで、テーブル名= 'TN')その後、<1 ...'それが働いている –