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索引页磨砺技术珠矶,践行数据之道,追求卓越价值
PostgreSQL处理xml数据初步的更多相关文章
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...
- XML数据的解析
XML数据的解析 相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部 ...
- 11月15日下午 ajax返回数据类型为XML数据的处理
ajax返回数据类型为XML数据的处理 /*XML:可扩展标记语言 HTML:超文本标记语言 标签:<标签名></标签名> 特点: 1.必须要有一个根 2.标签名自定义 3.对 ...
- iOS解析XML数据
iOS中解析XML数据的类是 NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...
- wcf序列化大对象时报错:读取 XML 数据时,超出最大
错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...
- php生成json或者xml数据
, ,'数据返回成功',$arr);echo $xml;?>
- XML数据 JSON数据 LitJSON 数据 的编写和解析 小结
用XML生成如下数据<?xml version="1.0"encoding="UTF-8"?><Transform name="My ...
- 一个简单xml数据转换为数组的方法
本人用easywechat做微信回复图文,从数据库中拿到的数据直接是xml拼好的数据,但是框架只有自带的获取xml格式的语句,所有需要将xml数据中所需要的数据拿出来用来拼接. 搜了好多资料说的都很麻 ...
- Ajax跨域访问XML数据的另一种方式——使用YQL查询语句
XML数据默认是不能在客户端通过Ajax跨域请求读取的,一般的做法是在服务器上写一个简单的代理程序,将远程XML的数据先读到本地服务器,然后客户端再从本地服务器通过Ajax来请求.由于我们不能对数据源 ...
随机推荐
- 命令模式-实现undo和redo
这次实验主要是实现多次redo和undo,即程序的撤回和恢复,这里只实现加法的撤回和恢复. 程序的撤回和恢复就是由所使用的软件来记录操作步骤,可以将数据恢复到某个操作状态. 撤回这个指令很常见,Win ...
- Oracle EBS 清除并发请求和(或)管理器数据 请求
请求说明:该请求可以清除平时提交的请求日志文件.并发管理器的日志文件.报表输出文件.并发请求和并发管理器进程的历史记录信息. 参数说明:(红色标注字段为必输项)1. 实体:ALL:清除请求历史记录. ...
- Oracle EBS 获取公司段的本位币
SELECT gls.currency_code FROM hr_organization_information_v t, gl_sets_of_books gls WHERE t.org_info ...
- 在centos系统安装mongodb
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...
- RHEL7系统管理之网络管理
1. RHEL7的网络介绍 在RHEL7中, NetworkManager 提供的默认联网服务是一个动态网络控制和配置守护进程, 支持ifcfg类型的配置文件. NetworkManager 可用于连 ...
- webservice双向验证
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtoco ...
- 解决tableView中cell动态加载控件的重用问题
解决tableView中cell动态加载控件的重用问题 tableView的cell,有时候需要在运行时取得对应的数据后才能够动态的创建该cell中的控件并加载到该cell中,此时,你一定会遇到重用问 ...
- Man's Best Friend: The Science Behind the Dog and Human Relationship
http://info.thinkfun.com/stem-education/mans-best-friend-the-science-behind-the-dog-and-human-relati ...
- (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态
1.访问控制(笔试题)1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问权 ...
- BlockingQueue笔记
Concurrent包中的BlockingQueue很好的解决了多线程中如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利. 通过一个共享 ...