views:

26

answers:

1

in ms sql I have the following code:

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>
'
*/

How would you port these stored procedure to postgres???

+1  A: 

In PostgreSQl,the xml function is weak.But you could use plperU procedure to do this.

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;
tinychen