Поиск названия таблиц в столбцах которых встречаются определенные данные
Необходимо найти таблицы в столбцах которых встречаются определенные данные
Есть запрос
--Удаляем таблицу если она есть
DROP TABLE if exists "cm_name" CASCADE;
--Создаём временную таблицу
create temp table cm_name (
tab_name varchar,
col_name varchar,
full_name varchar GENERATED ALWAYS AS ('public'||'.'||tab_name||'.'||col_name)stored);
--Добавляем в нее данные
insert into cm_name (tab_name, col_name)
SELECT table_name, column_name FROM information_schema.columns WHERE table_schema NOT IN ('information_schema','pg_catalog') and data_type = 'character varying';
select * from cm_name;
--Циклом проходим по таблице выбирая название таблицы в которой содержится текст (sword)
DO $$
DECLARE
col varchar;
sword varchar = '%index.html?id=a58f23596fbd470c87a4d16eec0a53ab%';
Begin
for col in (SELECT col_name FROM cm_name )
Loop
Raise Notice 'tablename = %',
(SELECT tab_name FROM cm_name where col like sword);
END LOOP;
END;
$$
который выводит следующее
NOTICE: tablename = NULL NOTICE: tablename = NULL NOTICE: tablename = NULL и тд
Где может быть допущена ошибка ?