Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #93949
    C-S-R
    Participante

      Boa Tarde Srs.

      Gostaria de saber se no SqlPlus em um UPDATE se caso tiver linhas em branco a query dara erro?
      Exemplo para eu poder me expressar melhor.

      UPDATE TABELA SET COLUNA = ‘XZXZXZXZXZXZXZ

      XZXZXZXZXZ’ WHERE ID = 1;

      O fato de ter essa linha em branco no meio da erro ao executar no sqlplus, em ferramentas como sqldeveloper funciona.

      O motivo de ter essa linha em branco é pq é um campo CLOB.

      Essa informação é correta?Alguem sabe como resolver?

      Obrigado.

      At
      Cesar

      #93950
      Marcos Braga
      Participante

        Olá C-S-R,

        Isso é coisa so SQLPLUS mesmo.

        Você pode arrumar isso ativando a variável SQLBL.

        Observe este exemplo:

        SQL> create table t1 (c1 varchar2(100));

        Tabela criada.

        SQL> insert into t1 values ('AAAAA');

        1 linha criada.

        SQL> commit;

        Commit concluido.

        SQL> update t1 set c1 = 'XZXZXZXZXZXZXZ
        2
        SQL> XZXZXZXZXZ';
        SP2-0734: inicio de comando desconhecido "XZXZXZXZXZ..." - restante da linha ignorado.
        SQL>
        SQL>
        SQL> SET SQLBL ON
        SQL>
        SQL>
        SQL> update t1 set c1 = 'XZXZXZXZXZXZXZ
        2
        3 XZXZXZXZXZ';

        1 linha atualizada.

        SQL> commit;

        Commit concluido.

        []s
        Braga

        #93954
        C-S-R
        Participante

          Opa Braga,

          Vivendo e aprendendo.
          Vou fazer aqui.

          vlw pela ajuda

          #93955
          C-S-R
          Participante

            Braga funcionou legal o SET SQLBL ON.
            Porém apareceu outro erro, pelo que pude analizar o ; agora esta dando erro.

            Tem um ; no meio da string e gera o erro ora-01756

            Sabe me dizer como resolver esse tb?

            obrigado

            Cesar

            #93956
            Marcos Braga
            Participante

              Oi Cesar,

              Creio que a solução será inativar o terminador “;” com SQLT.

              Observe este pequeno teste:

              1. Update normal com linhas em branco
                SQL> update t1 set c1 = 'ZXZXZXZXZX
                2
                3 ZXZXZXZXZ';

              1 row updated.

              SQL> commit;

              Commit complete.

              1. Agora o mesmo update com um ponto e vírgula na string (coincidentemente em uma linha em branco)
                SQL> update t1 set c1 = 'ZXZXZXZXZX
                2
                3 ;
                ERROR:
                ORA-01756: quote string not properly terminated

              Creio que é esse o erro a que se refere.

              E a solução:
              SQL>
              SQL> SET SQLT OFF
              SQL>
              SQL> update t1 set c1 = 'ZXZXZXZXZX
              2
              3 ;
              4 ZXZXZXZXZ'
              5 /

              1 row updated.

              Não esqueça, que depois que desativar o terminador “;” a barra assume o lugar e tudo dependerá dela, observe o commit
              SQL> commit
              2 /

              Commit complete.

              Se esquecer e adicionar um “;”, observe o erro
              SQL> commit;
              2 /
              commit;
              *
              ERROR at line 1:
              ORA-00911: invalid character

              Creio que é isso

              []s
              Braga

              #93988
              C-S-R
              Participante

                Braga,

                Efetuei os testes e rodou sem problemas.

                Muito obrigado pela ajuda.

                #93994
                hudsona
                Participante

                  Essa nem eu sabia braga

                  Muito bom

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