I have a procedure that queries schema and table. I want this to not overwrite the variable instead append, because the result I want to create view.
DECLARE
rec record;
sqlPlaceholder text;
BEGIN
FOR rec IN SELECT table_schema, table_name
FROM information_schema.tables
LOOP
sqlPlaceholder := sqlPlaceholder || 'SELECT ogc_fid, wkb_geometry FROM ' ||
rec.table_schema || '.' || rec.table_name || ' UNION ';
END LOOP;
strSQL := 'SELECT * FROM (' || sqlPlaceholder || ')';
RAISE INFO 'sample output %' , strSQL;
The variable sqlPlaceholder
only holds the last assignment from the loop. as it's overwritten by each loop.
I need to figure out how add them all in loop.
call create_view()
Value of string inside loop SELECT * FROM public._data_202101 UNION
Value of string inside loop SELECT * FROM public._data_202102 UNION
Value of string inside loop SELECT * FROM public._data_202103 UNION
Value of string inside loop SELECT * FROM public._data_202104 UNION
Value of string inside loop SELECT * FROM public._data_202105 UNION
Value of string inside loop SELECT * FROM public._data_202106 UNION
Value of string inside loop SELECT * FROM public._data_202107 UNION
Value of string inside loop SELECT * FROM public._data_202108 UNION
Value of string inside loop SELECT * FROM public._data_202109 UNION
Value of string inside loop SELECT * FROM public._data_202110 UNION
Value of string inside loop SELECT * FROM public._data_202111 UNION
Value of string inside loop SELECT * FROM public._data_202112 UNION
Value of string outside ==> create table public._data_all as (SELECT * FROM public._data_202112 union)