Pular para o conteúdo
  • Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por juliano_sb.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #84279
    juliano_sb
    Participante

      Bom Dia Pessoal!
      Estou utilizando um programa chamado SQuirrel Sql Client para acessar uma base oracle. E Precisava transformar uma coluna do tipo long em varchar2(4000). Fiz um teste com o SQL Tools e funcionou mas no SQuirrel não. Criei uma coluna nova e utilizei a sintaxe abaixo para copiar do dados da coluna A(LONG) para a Coluna B(VARCHAR2). depois apaguei os dados da A, mudei para VARCHAR2 e copiei os dados da B para a A.
      Mas estou com problemas no SQuirrel para realizar esse procedimento:
      /*Copia os dados da coluna long para a nova coluna varchar2*/
      BEGIN
      for r in (select * from Requisicoes_Texto) loop
      update Requisicoes_Texto
      set RQC_Comentario_Descricao2 = r.RQC_Comentario_Descricao
      where ID_COMPANHIA = r.ID_COMPANHIA AND
      ID_ESTABELECIMENTO_FISCAL = r.ID_ESTABELECIMENTO_FISCAL AND
      ID_REQUISICAO = r.ID_REQUISICAO AND
      ID_TEXTO = r.ID_TEXTO AND
      RQH_RELEASE = r.RQH_RELEASE
      ;
      end loop;
      END;

      Quando executo o comando ele me da o seguinte erro:

      Error: ORA-06550: line 9, column 38:
      PLS-00103: Encountered the symbol “end-of-file” when expecting one of the following:

      ;

      SQLState: 65000
      ErrorCode: 6550
      Error occured in:
      BEGIN
      for r in (select * from Requisicoes_Texto) loop
      update Requisicoes_Texto
      set RQC_Comentario_Descricao2 = r.RQC_Comentario_Descricao
      where ID_COMPANHIA = r.ID_COMPANHIA AND
      ID_ESTABELECIMENTO_FISCAL = r.ID_ESTABELECIMENTO_FISCAL AND
      ID_REQUISICAO = r.ID_REQUISICAO AND
      ID_TEXTO = r.ID_TEXTO AND
      RQH_RELEASE = r.RQH_RELEASE

      lguém teria uma sugestão, ou idéia.

      Um Grande Abraço
      Que Deus os abençoe

      #84280
      Rodrigo Mesquita
      Participante

        cara…será que não é o ; ? que ta na linda de baixo?
        tenta executar ele bem identado para ver se funciona

        BEGIN
        for r in (select * from Requisicoes_Texto) loop
        update Requisicoes_Texto
        set RQC_Comentario_Descricao2 = r.RQC_Comentario_Descricao
        where ID_COMPANHIA = r.ID_COMPANHIA
        AND ID_ESTABELECIMENTO_FISCAL = r.ID_ESTABELECIMENTO_FISCAL
        AND ID_REQUISICAO = r.ID_REQUISICAO
        AND ID_TEXTO = r.ID_TEXTO
        AND RQH_RELEASE = r.RQH_RELEASE;
        end loop;
        END;

        #84281
        Avatar photoLeonardo Litz
        Participante

          Cara, ao inves de vc abrir um loop
          vc pode da o update diretamente

          update Requisicoes_Texto
          set RQC_Comentario_Descricao2 = RQC_Comentario_Descricao;

          Tambem irá funcionar e é mais rapido.

          #84285
          juliano_sb
          Participante

            Consegui executar utilizando o SQL Plus, o problema de fazer direto é que os campos são de tipos diferentes.

            Muito Obrigado pela ajuda.

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