2010-10-26 14 views
1

en ms sql Je le code suivant:comment analyser une chaîne xml dans Postgres

ALTER PROCEDURE [dbo].[xmlDictamen_Alta] 
    @Xml text 
as begin 

declare @Id   integer 
declare @DictamenId numeric(18,0) 
declare @DocumentoId numeric(18,0) 
declare @Descripcion varchar(300) 

begin 

    set nocount on 
    exec dbo.sp_xml_preparedocument @Id output, @Xml 

    select 
     @DocumentId = DocumentId, 
     @Description = IsNull(Description, ''), 
    from 
    OpenXml(@IdXml, '/Parameter', 2) with (
    DocumentId  numeric(18,0), 
    Description  varchar(300) 
    ) 

    exec dbo.sp_xml_removedocument @IdXml 


/* 
execute xmlDictamen_Alta 
' 
    <Parameter> 
     <DocumentId>1328</DocumentId> 
     <Description>Descripcion</Description> 
    </Parameter> 
' 
*/ 

Comment qualifieriez-vous ces ports procédure stockée postgre ???

Répondre

2

Dans PostgreSQL, la fonction xml est faible. Mais vous pouvez utiliser la procédure plperU pour cela.

create or replace function proc_parse_xml(xml text) return setof tp_docs as $$ 

use XML::DOM; 

my $pr = new XML::DOM::Parser; 
my $xmldocs = $pr->parse(xml); 

...... 

return; 
$$ language plperlU;