CREATE OR REPLACE
PROCEDURE "TRUNCATETABLE" AS
BEGIN
FOR i IN (
SELECT
table_name
FROM
user_tables T
WHERE
T .table_name = 'PSG_DETAIL_ENTER'
OR T .table_name = 'PSG_MESSAGEINFO_ENTER'
OR T .table_name = 'PSG_CHECKERROR_ENTER'
OR T .table_name LIKE 'EI%'
OR T .table_name LIKE 'EB%'
OR T .table_name LIKE 'EH%'
OR T .table_name LIKE 'ER__\_%' ESCAPE '\'
) loop EXECUTE IMMEDIATE 'truncate table ' || i.table_name ;
END loop ;
END ;
table_name = 'PSG_MESSAGEINFO_ENTER' 这种写法单指一张表
table_name LIKE 'EI__%' 这种写法,表示所有EI开头的表
其中: _表示一个占位符 %表示多个占位符 \配合ESCAPE表示转义符,打个比方它可以检测的表有:
EIABPERSON,EIAB_PERSON,EIAAA___JJJJ 等等
ER__\_% 能检测的表有:
ERAB_ABCD,ERSF_QWER,ERRR_1ABC,ERRR__ABC 等等
蓝色框中为固定写法,红框中为想要清理的表
存储过程创建成功后,可以使用工具运行如navicat,也可以使用sql语句运行如 call 存储过程名();