Trocar as colunas LONGs por CLOBs (usando TO LOB)

De DTI Wiki

Ir para: navegação, pesquisa

Nbp.png OBRIGATÓRIO

Os campos do tipo LONG não serão mais suportados no futuro e devem ser substituídos por campos do tipo CLOB. Entre as vantagens de utilização do CLOB estão a possibilidade de criação de mais de um campo CLOB por tabela e a utilização de funções nestes campos, como por exemplo a função SUBSTR.

Comofazer.png COMO FAZER

		/* Tabela existente com campo long */
		CREATE TABLE tblteste (codigo NUMBER(3,0), campo1 LONG);
 
		/* Maneira mais fácil, porém não funciona em todos os casos */
		/* Alterar o campo LONG existente para CLOB */
		ALTER TABLE tblteste modify campo1 CLOB
			LOB (campo1novo) 
			STORE AS (TABLESPACE lobdata STORAGE (INITIAL ...));
 
		/* Maneira mais trabalhosa, mas funciona em todos os casos */
		/* Criar um novo campo CLOB */
		ALTER TABLE tblteste add (campo1novo CLOB)
			LOB (campo1novo) 
			STORE AS (TABLESPACE lobdata STORAGE (INITIAL ...));
 
		/* Copiar o conteúdo do campo LONG para o novo campo CLOB */
		UPDATE tblteste d
		SET d.campo1novo = (SELECT TO_LOB(o.campo1)
			                       FROM tblteste o
			                       WHERE o.codigo = d.codigo);
 
		/* Eliminar o campo LONG */
		ALTER TABLE tblteste DROP column campo1;
 
		/* Renomear o campo CLOB para o nome do antigo campo LONG */
		ALTER TABLE tblteste rename column campo1novo TO campo1;
Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas