Pular para o conteúdo
  • Este tópico contém 9 respostas, 5 vozes e foi atualizado pela última vez 16 anos atrás por fsitja.
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #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 Castilho

      #93060
      burga
      Participante

        Acredito que o CTAS vai resolver seu problema neste caso.

        #93061
        hudsona
        Participante

          O 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 …

          #93062
          Anô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?

            #93064
            fsitja
            Participante

              CTAS significa Create Table As Select:

              Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
              Connected as FSITJA

              SQL>
              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>

              #93065
              Anônimo

                O que você quis dizer é que eu tenho que criar a tabela na tablespace correta neste formato?

                E depois para mover os dados?

                #93066
                hudsona
                Participante

                  Sim, ou mudar o campo da tabela diretamente
                  com um ALTER TABLE X MODIFY Z CLOB;

                  #93067
                  Avatar photoRegis Araujo
                  Participante

                    Erik.. boa tarde..!

                    Faça assim com as tabelas de campos LOB…

                    ALTER TABLE MOVE LOB ('') STORE AS (TABLESPACE );

                    Espero que ajude..!!

                    Abraços..!

                    #93068
                    burga
                    Participante

                      Só 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;

                      #93076
                      fsitja
                      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
                        tablespace [nome_da_nova_tablespace]
                        as
                        select to_lob(col) col from t;
                        [/quote]

                        Isso precisa ser muito SYSDBA para conseguir rodar aqui no Oracle no meu trabalho… longe da minha alçada. 😆

                      Visualizando 10 posts - 1 até 10 (de 10 do total)
                      • Você deve fazer login para responder a este tópico.