top of page

ORACLE: Como mover colunas do tipo LOB

Conforme já relatado em post anterior (ORACLE: ORA-03297: file contains used data beyond requested RESIZE value) é possível reorganizar segmentos usando o comando move (para tabelas) ou rebuild (para índices). No entanto, para campos do tipo LOB o move da tabela não surte efeito.

  FILE_ID   BLOCK_ID         MB Name                                     Position MB
---------- ---------- ---------- ---------------------------------------- -----------
        13     318601    1514496 Free                                         2548808
        13     507913      32256 Free                                         4063304
        13     511945         64 CARGAS.SYS_LOB0000042576C00006$$             4095560
        13     511953     102784 Free                                         4095624

Nestes casos, é necessário seguir o seguinte procedimento:


1) Identificar qual o campo LOB que estamos trabalhando:

SQL> select owner, table_name, column_name
  2  from   dba_lobs
  3* where  segment_name = 'SYS_LOB0000042576C00006$$'

OWNER      TABLE_NAME                     COLUMN_NAME
---------- ------------------------------ ------------------------------
CARGAS     DE_PARA_TAB_PROG_ORCL          COMANDO

2) Executar o move para a coluna da tabela:

SQL> alter table cargas.DE_PARA_TAB_PROG_ORCL
  2  move lob (COMANDO)
  3  store as (tablespace updt);

Table altered.

SQL>

Pronto. O campo LOB foi `movido` para o tablespace escolhido.


Dúvidas?   silverio@siltechconsult.com.br

 
 
 

Posts recentes

Ver tudo

Comments


© 2022 por Siltech Consult

  • LinkedIn
bottom of page