Thứ Tư, 7 tháng 8, 2019

[ORACLE 11GR2] Resize datafile to Highest Block used in a script

/* Formatted on 8/7/2019 2:54:36 PM (QP5 v5.287) */
DECLARE
   v_HIGHBLOCK   NUMBER;
BEGIN
   FOR v_NEW_SIZE IN (SELECT FILE_ID, FILE_NAME
               FROM DBA_DATA_FILES
              WHERE TABLESPACE_NAME = 'TBS_Need_Resize')
   LOOP
      SELECT MAX (BLOCK_ID + BLOCKS)
        INTO v_HIGHBLOCK
        FROM DBA_EXTENTS
       WHERE TABLESPACE_NAME = 'TBS_Need_Resize' AND FILE_ID = v_NEW_SIZE.FILE_ID;

      EXECUTE IMMEDIATE
            'ALTER DATABASE DATAFILE '''
         || v_NEW_SIZE.FILE_NAME
         || ''' RESIZE '
         || (v_HIGHBLOCK * 8) / 1024
         || 'M';
   END LOOP;
END;
/

Không có nhận xét nào: