ORACLE: Como mover colunas do tipo LOB
- Siltech Consult
- 7 de out. de 2019
- 1 min de leitura
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
Comments