Sie sind auf Seite 1von 2

criando um banco

CREATE DATABASE fabrica;

criando uma tabela com campo xml

CREATE TABLE Produtos (


id_produto serial,
nome varchar(50),
descricao text,
especificacoes_tecnicas xml);

inserindo dados xml corretos

INSERT INTO Produtos (nome,descricao,especificacoes_tecnicas)


VALUES('RAC Sucess','Estante de Mogno','
<especificacoes>
<medidas>
<peso>13 Kg</peso>
<altura>1,77 m</altura>
<largura>1,50 m</largura>
</medidas>
</especificacoes>');

INSERT INTO Produtos (nome,descricao,especificacoes_tecnicas)


VALUES('RAC Sucess','Estante de Mogno','
<especificacoes>
<medidas padrao="brasileiro">
<peso>13 Kg</peso>
<altura>1,77 m</altura>
<largura>1,50 m</largura>
</medidas>
</especificacoes>');

inserindo dados xml mal formados

INSERT INTO Produtos (nome,descricao,especificacoes_tecnicas)


VALUES('RAC Sucess','Estante de Mogno','
<especificacoes>
<medidas>
<peso>13 Kg</peso>
<altura>1,77 m</altura>
<largura>1,50 m</largura>
</especificacoes>');

Erro de SQL:

ERRO: invalid XML content


DETAIL: Entity: line 7: parser error : Opening and ending tag mismatch: medidas
line 3 and especificacoes
</especificacoes>
^
Entity: line 7: parser error : Premature end of data in tag especificacoes line 2
</especificacoes>
^
Entity: line 7: parser error : chunk is not well balanced
</especificacoes>
^

Indica��o de entrada :

INSERT INTO Produtos (nome,descricao,especificacoes_tecnicas)


VALUES('RAC Sucess','Estante de Mogno','
<especificacoes>
<medidas>
<peso>13 Kg</peso>
<altura>1,77 m</altura>
<largura>1,50 m</largura>
</especificacoes>');

*inserindo dados xml corretos de acordo com uma dtd


*inserindo dados xml mal formados de acordo com uma dtd

selecionando elementos

SELECT (xpath('//peso',especificacoes_tecnicas))[1]
FROM produtos

SELECT (xpath('//especificacoes',especificacoes_tecnicas))[1] FROM produtos


where (xpath('//peso',especificacoes_tecnicas))[1]::text = '<peso>13 Kg</peso>';

atualizando elementos
apagando elementos

Das könnte Ihnen auch gefallen