Oracle バッチでテーブル データを削除する 2 つの方法

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