Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 10 anos, 7 meses atrás por Avatar de vanessa mortago amatovanessa mortago amato.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #104439
    Avatar de Gustavo OliveiraGustavo Oliveira
    Participante

      Pessoal,
      Bom dia!
      Estou com um problema em uma importação de um xml de um cliente, no qual o mesmo possui “tags” com o mesmo nome.
      Segue um exemplo do trecho do xml, e do código que estou desenvolvendo.
      XML:
      P
      20110525093646
      20110525093745
      20110525093500
      20110525093756
      Código:
      EXTRACTVALUE(VALUE(ROW_), ‘/ROW/TYPE_CODE’) TYPE_CODE,
      EXTRACTVALUE(VALUE(ROW_), ‘/ROW/CREATION_DATE’) CREATION_DATE,
      EXTRACTVALUE(VALUE(ROW_), ‘/ROW/UPDATE_DATE’) UPDATE_DATE,
      EXTRACTVALUE(VALUE(ROW_), ‘/ROW/SYSDATE_REG’) SYSDATE_REG

      Desde já, obrigado!!

      #106551
      Avatar de vanessa mortago amatovanessa mortago amato
      Participante

        Oi Gustavo,

        Eu não entendi muito bem como você está fazendo a importação mas eu vou te passar o passo a passo que eu fiz aqui e aí você vê se ajuda. Pelo que entendi quando no XML ha muitas tags com o mesmo nome a solucao para trazer cada uma é referenciar com []:

        1. Criei o arquivo import.xml no diretorio /tmp

        P
        20110525093646
        20110525093745
        20110525093500
        20110525093756

        2. Criei o diretorio teste_gpo para o /tmp

        create or replace directory test_gpo as '/tmp/';

        3. Criei a tabela para receber o arquivo:

        create table teste_gpo (type_code varchar2(1),creation varchar2(50), update1 varchar2(50), update2 varchar2(50), sysdate1 varchar2(50));

        4. Inseri os dados do XML:

        INSERT INTO teste_gpo(type_code,creation,update1,update2,sysdate1)
        WITH t AS (SELECT xmltype(bfilename('TEST_VANESSA','import.xml'), nls_charset_id('WE8ISO8859P1')) xmlcol FROM dual)
        SELECT
        extractValue(value(x),'/ROW/TYPE_CODE') type_code
        ,extractValue(value(x),'/ROW/CREATION_DATE') creation
        ,extractValue(value(x),'/ROW/UPDATE_DATE[1]') update1
        ,extractValue(value(x),'/ROW/UPDATE_DATE[2]') update2
        ,extractValue(value(x),'/ROW/SYSDATE_REG') sysdate1
        FROM t,TABLE(XMLSequence(extract(t.xmlcol,'/ROWSET/ROW'))) x;

        Boa sorte,

        Vanessa

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