oracle 批量删除表数据的两种方式

1、拼接式删除

SELECT
	'TRUNCATE TABLE ' || listagg || ';'
FROM
	(
	SELECT
		LISTAGG(TABLE_NAME, ',') WITHIN GROUP(
	ORDER BY
		TABLE_NAME
    ) listagg
	FROM
		USER_TABLES T
	WHERE
		T.TABLE_NAME != 'TASK_APP'
		AND T.TABLE_NAME != 'TASK_MANAGER'
		AND T.TABLE_NAME LIKE 'T_%'
)

2、循环式删除

BEGIN
	FOR I IN (
	SELECT
		TABLE_NAME
	FROM
		USER_TABLES T
	WHERE
		T.TABLE_NAME != 'TASK_APP'
		AND T.TABLE_NAME != 'TASK_MANAGER'
		AND T.TABLE_NAME LIKE 'T_%') LOOP
    EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || I.TABLE_NAME;
END LOOP;
END;

猜你喜欢

转载自blog.csdn.net/qq_42003702/article/details/129729002