Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #90563
    hudsona
    Participante

      Pessoal

      Ao tentar ler uma coluna blbo na minha tabela tive o resultado em hexa decimal

      PENHA_CETIP:SYSTEM> select dbms_lob.substr( GRP_MENSAGEM_UNICODE,4000, 1 ) from CETIP.AUDIT_LOG;

      DBMS_LOB.SUBSTR(GRP_MENSAGEM_U
      ————————————————————
      003C003F0078006D006C002000760065007200730069006F006E003D0022
      0031002E00300022003F003E003C0044004F004300200078006D006C006E
      0073003D00220068007400740070003A002F002F007700770077002E0062
      00630062002E0067006F0076002E00620072002F005300500042002F0043
      005400500030003

      Alguém sabe se é possível recuperar esse resultado em modo texto sem ter que usar as packages dbms_lob ?

      #90564
      hudsona
      Participante

        O tipo da coluna é BLOB.

        #90565
        fsitja
        Participante

          Ele está te mostrando hexa porque o dado é binário e é a forma direta de representá-lo. Para exibir caracteres creio que você vai ter que converter para CLOB usando a procedure DBMS_LOB.CONVERTTOCLOB.

          http://download.oracle.com/docs/cd/E118 … m#i1020356

          #90571
          marlontk
          Participante

            Segue função que converte um Blob para Clob.

            CREATE OR REPLACE FUNCTION func_converte_blob_clob
            — procedimento que converte um campo blob para clob
            (p_blob in blob)
            return clob
            as
            v_blob BLOB;
            v_clob CLOB;
            dest_offset NUMBER := 1;
            src_offset NUMBER := 1;
            amount INTEGER := dbms_lob.lobmaxsize;
            blob_csid NUMBER := dbms_lob.default_csid;
            lang_ctx INTEGER := dbms_lob.default_lang_ctx;
            warning INTEGER;
            begin
            DBMS_LOB.CREATETEMPORARY(lob_loc=>v_blob, cache=>TRUE, dur=>dbms_lob.SESSION);
            DBMS_LOB.CREATETEMPORARY(lob_loc=>v_clob, cache=>TRUE, dur=>dbms_lob.SESSION);
            V_BLOB:= P_BLOB;
            DBMS_LOB.CONVERTTOCLOB(v_clob,v_blob,amount,dest_offset,src_offset,blob_csid,lang_ctx,warning);
            — insert numa tabela que tenha um campo xmltype
            RETURN V_CLOB;
            END;

            #90575
            hudsona
            Participante

              Obrigado fsitja e marlontk .

              Consegui verificar o conteúdo dessas colunas, era xml.

              Att

              #90576
              marlontk
              Participante

                Blz eu uso isso porque gravo o arquivo xml(NFe) no banco o quando preciso ver alguma coisa do arquivo chamo essa função que me retorna todos os dados do XML.

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