Zwei Möglichkeiten zum Löschen von Tabellendaten in Oracle-Batches

1. Gespleißtes Löschen

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. Zirkuläre Löschung

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;

Guess you like

Origin blog.csdn.net/qq_42003702/article/details/129729002