Olá, preciso fazer com que um xml armazenado em um campo da tabela retorne o 
nome da tag e seu valor em colunas, porém o comando que consegui está repetindo 
o nome da primeira tag para todas as linhas, abaixo a minha estrutura, se 
alguem puder me ajudar.

Create table AUDITORIA_ANTERIOR
(
    SEQUENCIA Serial NOT NULL,
    SEQUENCIA_AUDITORIA Integer NOT NULL,
    REGISTRO Text NOT NULL,
primary key (SEQUENCIA,SEQUENCIA_AUDITORIA)
);
 
insert into auditoria_anterior (sequencia_auditoria, registro)
values (1, '<?xml version="1.0" encoding="iso-8859-1"?><ROOT> 
<CLIENTES><CGC_CPF_CLIENTE>12345678901</CGC_CPF_CLIENTE><TIPO>1</TIPO><CODIGO_CONVENIO></CODIGO_CONVENIO><PESSOA>F</PESSOA><NOME>JOAO
 DA SILVA</NOME></CLIENTES> </ROOT>')
 
SELECT * FROM
xpath_table('sequencia',
            'registro',
            'auditoria_anterior',
            'name(/ROOT/CLIENTES/*)|/ROOT/CLIENTES/*',
            'sequencia = 1')
AS t(sequencia integer, coluna text, valor text)
WHERE valor <> ''

O resultado que preciso seria assim 
sequencia   coluna    valor
integer        text        text
--------------------------------------------------
1                 CGC_CPF_CLIENTE      12345678901
1                 TIPO                             1
1                 PESSOA                        F
1                 NOME                           JOAO DA SILVA

Porém com a estrutura acima está retornando o valor da “coluna” repetindo 
CGC_CPF_CLIENTE para as demais linhas da coluna, ou seja, esta retornando assim:
sequencia   coluna    valor
integer        text        text
--------------------------------------------------
1                 CGC_CPF_CLIENTE      12345678901
1                 CGC_CPF_CLIENTE      1
1                 CGC_CPF_CLIENTE      F
1                 CGC_CPF_CLIENTE      JOAO DA SILVA

gostaria de saber se é devido a um erro de sintaxe ou a função name esta com 
problema pra retornar os nomes das tags?

Obrigado.


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a