OracleのPLSQLでよく使う動的SQL

begin
    for vRECORD in (
        SELECT 'TRUNCATE TABLE ' || TABLE_NAME || ' ' AS SQL_STR
        FROM USER_TABLES
        ORDER BY TABLE_NAME
    ) loop
        begin
            DBMS_OUTPUT.PUT_LINE(vRECORD.SQL_STR);
            execute immediate vRECORD.SQL_STR;
        exception
            when others then
                DBMS_OUTPUT.PUT_LINE('ERROR -> [' || vRECORD.SQL_STR || ']' || SQLCODE || ' ' || SQLERRM);
        end;
    end loop;
end;
/

PLSQLの構文とか使わないと忘れるのでめも