在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 ???
答案 0 :(得分:2)
在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;