Как разобрать строку XML в Postgres - PullRequest
1 голос
/ 26 октября 2010

в ms sql У меня есть следующий код:

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

Как бы вы перенесли эту хранимую процедуру на postgres ???

1 Ответ

2 голосов
/ 26 октября 2010

В PostgreSQl функция xml слабая. Но вы можете использовать процедуру plperU для этого.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...