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索引頁
磨礪技術珠磯,踐行數據之道,追求卓越價值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM