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