Pentaho DI
October 8, 2022

Pentaho DI. Execute SQL script.

Используем step Execute SQL script для выпиливания изменений, сделанных в заметке https://teletype.in/@velipre_xella/B6vOzHW8kKO.

Как анонимный блок pg/plsql туда вставить я на раз не нагуглил, со степом "Call DB procedure" тоже не получилось.

Работает так:

Внутри степа вызов хранимой процедуры PostgreSQL, закомментированный код - это то, что она делает:

Код хранимой процедуры:

CREATE or replace PROCEDURE stg.drop_tables()
  LANGUAGE plpgsql as $
  declare 
  v_sql_str text;
  r record;
  begin
for r in (
select table_name t FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'stg'
and table_name like 'test%'
) loop
  v_sql_str := 'drop table stg.'||r.t || ';';
  --RAISE NOTICE 'строка (%)', v_sql_str;
 execute (v_sql_str);
 end loop;	  
 END;
$;

Степ отработал, таблицы дропнуты.