[script]P_CHECK_BLACK.sql 檢查當前使用者下是否有varchar2欄位的末尾包含空格
create or replace procedure P_CHECK_BLACK
is
/*用途:檢查當前使用者下是否有varchar2欄位的末尾包含空格,
將結果插入到表contain_black中;
將這些欄位中的空格刪除
*/
is
/*用途:檢查當前使用者下是否有varchar2欄位的末尾包含空格,
將結果插入到表contain_black中;
將這些欄位中的空格刪除
*/
type typ_tabnm is table of varchar2(100);
type typ_colnm is table of varchar2(100);
lis_tabnm typ_tabnm;--used to store table name
lis_colnm typ_colnm;--used to store column name
n_count number;--judge whether there are records demanding to be trim
begin
type typ_colnm is table of varchar2(100);
lis_tabnm typ_tabnm;--used to store table name
lis_colnm typ_colnm;--used to store column name
n_count number;--judge whether there are records demanding to be trim
begin
--對於常用的資料型別,我們只需要將varchar2的欄位進行trim
select table_name,column_name
bulk collect into lis_tabnm,lis_colnm
from user_tab_cols where exists
(select 1 from table_log where table_log.table_name=user_tab_cols.table_name)
and user_tab_cols.data_type in ('VARCHAR2');
select table_name,column_name
bulk collect into lis_tabnm,lis_colnm
from user_tab_cols where exists
(select 1 from table_log where table_log.table_name=user_tab_cols.table_name)
and user_tab_cols.data_type in ('VARCHAR2');
--execute immediate 'create table contain_black(tabnm varchar2(100),colnm varchar2(100))';
--將需要trim的欄位表名、列名插入到表contain_black中
for i in lis_tabnm.first..lis_colnm.last loop
execute immediate 'insert into contain_black select '
||''''||lis_tabnm(i)||''''||','||''''||lis_colnm(i)||''''
||' from '||lis_tabnm(i)||' where '||lis_colnm(i)||'<>trim('||lis_colnm(i)||') and rownum=1';
end loop;
for i in lis_tabnm.first..lis_colnm.last loop
execute immediate 'insert into contain_black select '
||''''||lis_tabnm(i)||''''||','||''''||lis_colnm(i)||''''
||' from '||lis_tabnm(i)||' where '||lis_colnm(i)||'<>trim('||lis_colnm(i)||') and rownum=1';
end loop;
commit;
select count(1) into n_count from contain_black;
if n_count>0 then
select c.tabnm,c.colnm bulk collect into lis_tabnm,lis_colnm
from contain_black c;
for i in (select * from contain_black) loop
execute immediate
'update '||i.tabnm||' set '||i.colnm||'=trim('||i.colnm||')';
commit;
end loop;
/*for i in lis_tabnm.first..lis_colnm.last loop
execute immediate
'update '||lis_tabnm(i)||' set '||lis_colnm(i)||'=trim('||lis_colnm(i)||')';
commit;
end loop;*/
end if;
select count(1) into n_count from contain_black;
if n_count>0 then
select c.tabnm,c.colnm bulk collect into lis_tabnm,lis_colnm
from contain_black c;
for i in (select * from contain_black) loop
execute immediate
'update '||i.tabnm||' set '||i.colnm||'=trim('||i.colnm||')';
commit;
end loop;
/*for i in lis_tabnm.first..lis_colnm.last loop
execute immediate
'update '||lis_tabnm(i)||' set '||lis_colnm(i)||'=trim('||lis_colnm(i)||')';
commit;
end loop;*/
end if;
end P_CHECK_BLACK;
/
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-760070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle查詢當前使用者和當前使用者下的所有表Oracle
- sql查詢當前使用者所有表、欄位及相關注釋資訊SQL
- 【轉】檢視Oracle當前使用者下的資訊Oracle
- ORACLE查詢欄位中含有空格的資料Oracle
- 檢查vector中是否包含給定元素
- oracle檢視該使用者的所有表名字、表註釋、欄位名、欄位註釋、是否為空、欄位型別Oracle型別
- 檢查型別是否溢位型別
- 【Script】使用PL/SQL快速清理當前使用者下所有資料庫物件SQL資料庫物件
- 檢測當前瀏覽器是否支援cookie瀏覽器Cookie
- 1.4.2. 檢查當前版本號
- JS 檢測當前時間是否為夏令時JS
- 欄位長度前後端是否都需要做限制?後端
- 使用者查詢當前session IDSession
- SQL 判斷欄位是否以數字開頭或者包含數字SQL
- Linux 下檢視系統當前登入使用者資訊Linux
- Python判斷當前使用者是否是rootPython
- 檢視當前使用者正在等待事件事件
- 面試題:問題1、查詢每個學期每門課程最高分記錄(包含全部5個欄位) 問題2、查詢與前一個學期相比成績有提高的記錄(包含全部5個欄位)面試題
- sql server 修改欄位名,檢視指定表是否存在SQLServer
- JDBC處理包含CLOB欄位JDBC
- sql 查詢當前使用者所有表的容量SQL
- pydantic 欄位的預設值設定獲取當前時間
- oracle查出某個欄位帶空格的資料Oracle
- 檢查外來鍵是否有索引的指令碼索引指令碼
- 檢查使用者名稱是否使用介面
- Vue檢查使用者名稱是否使用Vue
- 利用HttpModule 檢查使用者是否有許可權開啟指定的網址HTTP
- 檢視當前登入的使用者及其IP地址
- mysql正則匹配解決查詢一個欄位是否在另一個欄位中MySql
- MySQL中修改一個資料庫下包含有某個相同欄位的所有表的欄位長度MySql資料庫
- Linux下用於檢視系統當前登入使用者資訊Linux
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- linux下檢視當前網路流量Linux
- insert語句中append提示對欄位的檢查APP
- 檢查陣列中是否有重複項陣列
- 判斷當前使用者是否為系統管理員的例項
- oracle檢查資料庫是否有壞塊的命令Oracle資料庫
- 檢視linux系統當前登陸的使用者Linux