Параметр переменной работает для простых запросов в файле, но не работает внутри блоков DO
.Один из вариантов - создать таблицу TEMP, в которой хранится переменная, а затем использовать ее следующим образом.
create temp table var_temp as select :'v1'::TEXT as var;
do $$
begin
delete from tabledetails where table_name =(select var from var_temp) ;
end;
$$;
psql.exe -U postgres -p 5454 -h 127.0.0.1 -d desk -f D:\insert_all.sql -v v1="statusTable"
Если у вас нет других операций, для которых требуется блок DO
, рассмотрите возможность запуска удаления как простого оператора SQL.