- Este tópico contém 9 respostas, 5 vozes e foi atualizado pela última vez 16 anos atrás por
fsitja.
-
AutorPosts
-
10 de março de 2010 às 5:02 pm #93058
Anônimo
Pessoal,
Estou fazendo uma mudança das tabelas de uma tablespace para outra, só que tem algumas tabelas que são do tipo LONG e quando vou fazer o move este erro é retornado(ORA-OO997: illegal use of long datatype) e a mesma não move.
Como devo proceder neste caso?
Atenciosamente
Erik Castilho10 de março de 2010 às 5:10 pm #93060burga
ParticipanteAcredito que o CTAS vai resolver seu problema neste caso.
10 de março de 2010 às 5:17 pm #93061hudsona
ParticipanteO move tablespace não vai funcionar mesmo.
Você pode usar o que o burga falou ou se possivel converter o campo para clob e usar o move tablespace.Faça um teste …
10 de março de 2010 às 5:52 pm #93062Anônimo
[quote=”burga”:3mfc937x]Acredito que o CTAS vai resolver seu problema neste caso.[/quote]
Poderia me explicar melhor como que procedo com o CTAS?
10 de março de 2010 às 6:08 pm #93064fsitja
ParticipanteCTAS significa Create Table As Select:
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as FSITJASQL>
SQL> create table t (col long);Table created
SQL> insert into t values ('ABC');1 row inserted
SQL> commit;Commit complete
SQL> create table t2 as
2 select to_lob(col) col from t;Table created
SQL> drop table t;Table dropped
SQL> rename t2 to t;Table renamed
SQL> desc t;
Name Type Nullable Default Comments
COL CLOB Y
SQL> select * from t;COL
ABC
SQL>
10 de março de 2010 às 6:25 pm #93065Anônimo
O que você quis dizer é que eu tenho que criar a tabela na tablespace correta neste formato?
E depois para mover os dados?
10 de março de 2010 às 6:56 pm #93066hudsona
ParticipanteSim, ou mudar o campo da tabela diretamente
com um ALTER TABLE X MODIFY Z CLOB;10 de março de 2010 às 7:03 pm #93067Regis Araujo
ParticipanteErik.. boa tarde..!
Faça assim com as tabelas de campos LOB…
ALTER TABLE MOVE LOB ('') STORE AS (TABLESPACE );
Espero que ajude..!!
Abraços..!
10 de março de 2010 às 7:18 pm #93068burga
ParticipanteSó acrescentando ao exemplo do Fsitja, no CTAS você deverá explicitar a tablespace a ser utilizada pela nova tabela:
create table t2
tablespace [nome_da_nova_tablespace]
as
select to_lob(col) col from t;10 de março de 2010 às 9:50 pm #93076fsitja
Participante[quote=”burga”:z9e4ak8b]Só acrescentando ao exemplo do Fsitja, no CTAS você deverá explicitar a tablespace a ser utilizada pela nova tabela:
create table t2[/quote]
tablespace [nome_da_nova_tablespace]
as
select to_lob(col) col from t;Isso precisa ser muito SYSDBA para conseguir rodar aqui no Oracle no meu trabalho… longe da minha alçada. 😆
-
AutorPosts
- Você deve fazer login para responder a este tópico.