0
테이블에 새 레코드의 수를 얻기 위해 Postgres 함수를 작성했습니다. 여기서 테이블 이름은 변수입니다. 동적 SQL에서 테이블 이름에 대한 인수를 사용하는 방법
create or replace function dmt_mas_updates(
tb_name text,
days integer)
returns integer as
$$
declare
ct integer;
begin
execute 'select count(*) from $1 where etl_create_dtm > now() - $2 * interval ''1 days'' '
using tb_name, days into ct;
return ct;
end;
$$ LANGUAGE 'plpgsql'
내가 select * from dmt_mas_updates('dmt_mas_equip_store_dim',2);
와 함수를 호출
$1
에서 구문 오류가 발생했습니다.
쿼리를 직접 실행하면 select count(*) from dmt_mas_equip_store_dim where etl_create_dtm >= interval '3 days'
, 제대로 작동합니다.
왜이 오류가 발생합니까? 나는 무엇을 잘못 했는가?