首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres OpenXML

Postgres OpenXML
EN

Stack Overflow用户
提问于 2015-10-07 15:02:54
回答 2查看 292关注 0票数 4

首先:是的,我读过this post关于OpenXML和postgres的文章。

  1. 六年后,情况是否仍然如此?
  2. 如果是这样的话,我的公司将从MS转换为Postgres,使用了大量的存储过程,其中许多存储过程实际上依赖于OpenXML。要想从我们的xpath()中检索到的每一件可能的东西,都必须编写一个XML,这似乎非常麻烦。关于这个转换,你有什么建议吗?还有一个更好的替代xpath()的方法,我还没见过呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-25 16:40:34

经过大量研究后:

1)是的,似乎是这样的。

( 2)是的,这有点痛苦,制作了一个内部程序,它抓住了潜在的XML路径,并为我们创建了一个脚本,只需要手工进行一些调整。

谢谢

票数 2
EN

Stack Overflow用户

发布于 2021-07-22 11:50:40

PostgreSQL中的模拟OPENXML (希望xmltable按照它们在输入xml中出现的顺序查看节点):

代码语言:javascript
复制
    CREATE OR REPLACE FUNCTION openxml (
      p_xml xml
    )
    RETURNS TABLE (
      id integer,
      parent_id integer,
      element_name text,
      element_data text
    ) AS
    $body$
    DECLARE
    BEGIN
      return query
      with t as (SELECT *
                 from xmltable('//*' 
                               passing p_xml           
                               columns 
                                 id for ORDINALITY,
                                 element_name text path 'local-name()',
                                 parent_name text path 'local-name(..)',
                                 element_data text path 'text()[1]'
                               ))
      select t.id, 
            (select max(t1.id) from t t1 where t1.id<t.id and t.parent_name=t1.element_name)as parent_id, 
            t.element_name, 
            t.element_data
      from t;                                  

END;
$body$
LANGUAGE 'plpgsql';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32995786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档