DO $$
DECLARE
_rec record;
_tag_name varchar(32);
begin
_tag_name := 'tag_678';
for _rec in
-----------------------------
SELECT attrelid::regclass as tablename,
attname,
(select typname from pg_type where oid=atttypid) as col_type
FROM pg_attribute
WHERE --attrelid = 'er.editor_comment_tmp'::regclass AND
attnum > 0
and attname = _tag_name
AND NOT attisdropped
and (select typname from pg_type where oid=atttypid)='varchar'
-----------------------------
loop
begin
execute 'update '||_rec.tablename||' set '||_tag_name||'=null';
execute 'alter table '||_rec.tablename||' alter column '||_tag_name||' type numeric using '||_tag_name||'::numeric';
raise notice 'OK: table - %',_rec.tablename;
exception
when others then raise notice 'ERROR: table - %',_rec.tablename;
end;
end loop;
END
$$
DECLARE
_rec record;
_tag_name varchar(32);
begin
_tag_name := 'tag_678';
for _rec in
-----------------------------
SELECT attrelid::regclass as tablename,
attname,
(select typname from pg_type where oid=atttypid) as col_type
FROM pg_attribute
WHERE --attrelid = 'er.editor_comment_tmp'::regclass AND
attnum > 0
and attname = _tag_name
AND NOT attisdropped
and (select typname from pg_type where oid=atttypid)='varchar'
-----------------------------
loop
begin
execute 'update '||_rec.tablename||' set '||_tag_name||'=null';
execute 'alter table '||_rec.tablename||' alter column '||_tag_name||' type numeric using '||_tag_name||'::numeric';
raise notice 'OK: table - %',_rec.tablename;
exception
when others then raise notice 'ERROR: table - %',_rec.tablename;
end;
end loop;
END
$$