Предположительно, вы хотите сделать это для каждого столбца в схеме, а не в базе данных. Попытка сделать это со словарными таблицами была бы плохой идеей ...
declare
v_schema varchar2(30) := 'YOUR_SCHEMA_NAME';
cursor cur_tables (p_schema_name varchar2) is
select owner, table_name, column_name
from all_tables at,
inner join all_tab_columns atc
on at.owner = atc.owner
and at.table_name = atc.table_name
where atc.data_type = 'VARCHAR2'
and at.owner = p_schema;
begin
for r_table in cur_tables loop
execute immediate 'update ' || r.owner || '.' || r.table_name
|| ' set ' || r.column_name || ' = trim(' || r.column_name ||');';
end loop;
end;
Это будет работать только для полей, которые изначально являются VARCHAR2. Если ваша база данных содержит поля CHAR, то вам не повезло, поскольку поля CHAR всегда дополняются до максимальной длины.