Не передавайте значения как строковые литералы. Используйте заполнители и передавайте их как «нативные» значения.
Кроме того, вы не можете использовать предложение values
, если хотите выбрать исходные значения из таблицы. Оператор вставки: или insert into tablename (column_one, column_two) values (value_one, value_two)
или insert into (column_one, column_two) select c1, c2 from some_table
Я также не вижу необходимости в динамическом SQL для начала:
insert into test.table2 (column_name,schema_name,tablename)
select col1,col2,col3
from test.table3 X
where X.dl_upd_ts::timestamp > MAX_upd_date_Entity_Incident;
Если вы упростили свой пример и вам действительно нужен динамический SQL, вы должны использовать что-то вроде этого:
execute 'insert into test.table2 (column_name,schema_name,tablename)
select col1,col2,col3) from test.table3 X where X.dl_upd_ts::timestamp > $1'
using MAX_upd_date_Entity_Incident;