plsql新建存储过程
create or replace procedure trimtab is
--所有表 去空格
/*1、查询出所有表存放在一个集合里
2、循环每个表,处理
--获取表的字段名
select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A
where TABLE_NAME=upper('action_forcheck')
*/
v_sql varchar2(2000);
v_table_name varchar2(30);
cursor tables is
select table_name from user_tables
where table_name not like 'JBPM4%';
TYPE FILED_LISTS IS REF CURSOR; --字段名集合
v_listf FILED_LISTS;
V_FILED varchar2(30);
begin
open tables;
loop
--提取一行数据到 tables
fetch tables
into v_table_name;
--判读是否提取到值,没取到值就退出
exit when tables%notfound;
OPEN v_listf FOR
select A.COLUMN_NAME from user_tab_columns A
where TABLE_NAME=upper(v_table_name);
LOOP
FETCH v_listf
INTO V_FILED;
EXIT WHEN v_listf%NOTFOUND;
v_sql := 'UPDATE '||v_table_name|| ' SET '|| V_FILED ||'=TRIM('||V_FILED||')' ;
execute immediate v_sql;
COMMIT;
END LOOP;
CLOSE v_listf;
end loop; --关闭游标
close tables;
end;
测试,点击后就完成了
注意:本文归作者所有,未经作者允许,不得转载