Home » RDBMS Server » Server Administration » how to see whether table data is using compresssion (oracle 11.2.0.2.0 linux 2.6)
how to see whether table data is using compresssion [message #579539] Wed, 13 March 2013 01:38 Go to previous message
kesavansundaram
Messages: 183
Registered: October 2007
Location: MUMBAI
Senior Member
Team,

1)i have 2 SWP TABLES. while dropping a column, i am getting error -
ORA-39726: unsupported add/drop column operation on compressed tables.

2) when i checked compression status, those were not compressed. But as per our code standard, SWP tables should not be in compress mode.

OWNER                          TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ ------------------------------ -------- ------------
NOVAR                          PAYMENT_SWP                    DISABLED

OWNER                          TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ ------------------------------ -------- ------------
NOVAR                          PREPAYMENT_SWP                 DISABLED


3) as a workaround, i compressed these 2 SWP tables with OLTP option, and then i was able to drop the column from these 2 SWP tables.

4) please confirm whether below statement is correct or not ?
IF A TABLE USING BLOCK LEVEL COMPRESSION, THEN this error will come - ORA-39726: unsupported add/drop column operation on compressed tables.

if above statement is correct, then how to find out whether table data is using block level compression ?

5) we have DBMS_COMPRESSION.GET_COMPRESSION_TYPE. using this i just tried to find out, but i am getting "1" as output. I am not getting the exact meaning of it.

Please confirm what is the conclusion on this ?

SQL> declare
        rid rowid;
        n number;
begin
        select max(rowid) into rid from NOVAR.PAYMENT_SWP;
        n := dbms_compression.get_compression_type('NOVAR','PAYMENT_SWP',rid);
        dbms_output.put_line(n);
end;
/
  2    3    4    5    6    7    8    9  1

PL/SQL procedure successfully completed.

SQL>
SQL> SET SERVEROUTPUT ON
SQL> /
1

PL/SQL procedure successfully completed.

SQL> SELECT max(rowid) from NOVAR.PAYMENT_SWP;

MAX(ROWID)
------------------
AAsz4fAHSAAAD3IABs



(ii) 2nd table

SQL> set serveroutput on
SQL> declare
        rid rowid;
        n number;
begin
        select max(rowid) into rid from NOVAR.PREPAYMENT_SWP;
        n := dbms_compression.get_compression_type('NOVAR','PREPAYMENT_SWP',rid);
        dbms_output.put_line(n);
end;
  2    3    4    5    6    7    8    9
 10  /
1

PL/SQL procedure successfully completed.

SQL> SELECT max(rowid) from NOVAR.INVOICELINE_SWP;

MAX(ROWID)
------------------
AAsz4ZAEkAAAp8XAAA


Thank you very much for your time on this.

-Kesavan



 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Moving OMF files in ASM
Next Topic: ORA-01652
Goto Forum:
  


Current Time: Fri Apr 26 02:45:35 CDT 2024