zoukankan      html  css  js  c++  java
  • PostgreSQL处理xml数据初步

    磨砺技术珠矶,践行数据之道,追求卓越价值
    回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页
    [作者 高健@博客园  luckyjackgao@gmail.com]

    PostgreSQL及PPAS支持xml数据类型,故进行如下的实验。

    先看PPAS9.2中的效果:

    先建立表:

    -bash-3.2$ ./bin/psql -d edb
    psql (9.2.1.3)
    "help" でヘルプを表示します.
    
    edb=# CREATE TABLE xmltab01(books xml);
    CREATE TABLE
    edb=# INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');
    INSERT 0 1
    edb=# INSERT INTO xmltab01(books) VALUES ('<title>Book0002</title>');
    INSERT 0 1
    edb=#

    再查询:

    edb=# SELECT books from xmltab01;
    
    books 
    -------------------------
    <title>Book0001</title>
    <title>Book0002</title>
    (2 行)

    然后,继续插入更复杂的数据:

    edb=# INSERT INTO xmltab01(books) VALUES('
    
    edb'# <book>
    edb'# <title>Book0003</title>
    edb'# <author>Author0003</author>
    edb'# <publisher>Puber0003</publisher>
    edb'# </book>');
    INSERT 0 1
    edb=#

     

    edb=# INSERT INTO xmltab01(books) VALUES('
    
    edb'# <book>
    edb'# <title>Book0004</title>
    edb'# <author>Author0004</author>
    edb'# <publisher>Puber0004</publisher>
    edb'# </book>');
    INSERT 0 1
    edb=# 

     

    edb=# INSERT INTO xmltab01(books) VALUES('
    edb'# <book>
    edb'# <title>Book0005</title>
    edb'# <author>Author0004</author>
    edb'# <publisher>Puber0004</publisher>
    edb'# </book>');
    INSERT 0 1
    edb=# 

    接着,进行一个带条件的查询,查找出作者为Author0004的用户所写的书的title:

    不符合条件的记录也被查询出来,留下一个空值。

    edb=# SELECT xpath('/book[author/text()="Author0004"]/title', books) FROM xmltab01;
    xpath 
    ---------------------------
    {}
    {}
    {}
    {<title>Book0004</title>}
    {<title>Book0005</title>}
    (5 行)
    
    edb=#

    最后删除表:

    edb=# drop table xmltab01;
    DROP TABLE
    edb=#

     

    下面是使用PostgreSQL时的情形, 

    初次使用发生错误,需要重新编译数据库:

    postgres=# CREATE TABLE xmltab01(books xml);
    CREATE TABLE
    postgres=# INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');
    ERROR:  unsupported XML feature
    LINE 1: INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>...
                                                ^
    DETAIL:  This functionality requires the server to be built with libxml support.
    HINT:  You need to rebuild PostgreSQL using --with-libxml.
    postgres=# 

    在进行了  ./configure --with-libxml  gmake && gmake install 之后,

    可以正常工作。

     

    [作者 高健@博客园  luckyjackgao@gmail.com]
    回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页
    磨砺技术珠矶,践行数据之道,追求卓越价值

  • 相关阅读:
    mysql索引
    mysql锁机制
    mysql授权
    mysql执行计划
    mysql知识补遗
    求助:springboot调用存储过程并使用了pagehelper分页时报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
    java面试题1
    Yarn
    MapRudecer
    Hive数据倾斜和解决办法
  • 原文地址:https://www.cnblogs.com/gaojian/p/3314369.html
Copyright © 2011-2022 走看看