Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104668061
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-24 09:57:48

作者: 佚名 出处: 

使用XML选项和修饰符导出XML数据

与导出大型对象一样,您可以指定被导出XML文档的存储路径,还可以指定输出文件的文件名。考虑下面的例子:

EXPORT TO prodexport.del DEL
XML TO d:\xmlpath
XMLFILE proddesc
MODIFIED BY XMLINSEPFILES XMLNODECLARATION XMLCHAR
XMLSAVESCHEMA
MESSAGES msg.out
SELECT * FROM product

在这个例子中,PRODUCT表的关系数据被导出到prodexport.del文件。然后,所有XML数据都被写入到XML TO子句指定的目录d:\xmlpath中。包含XML数据的文件被命名为proddesc.ext.xml,其中ext是一个序列号(例如proddesc.001.xml、proddesc.002.xml、proddesc.003.xml等)。基本文件名是用XMLFILE选项定义的。

您也许还注意到,这个例子中使用了一些修饰符。下面对所有与XML相关的修饰符作一个总结。

XMLINSEPFILES导致导出实用程序将导出的每个XML文档写入到不同的XML文件中。
XMLNODECLARATION表明导出XML数据无需使用XML声明标记。默认情况下,XML标记被写在XML文档的开头,并包括一个编码属性。
XMLCHAR表明XML数据以字符码页编码。默认情况下,XML数据是以Unicode编码的。当使用这个修饰符的时候,使用的是codepage文件类型修饰符或应用程序码页。
XMLGRAPHIC表明无论是codepage文件类型修饰符还是应用程序码页,导出的XML数据将以UTF-16码页编码。注意,这个例子中没有使用XMLGRAPHIC。

我们要介绍的最后一个选项是XMLSAVESCHEMA。当插入一个XML文档时,可以用一个XML模式对其进行验证。XMLSAVESCHEMA选项导致导出实用程序还保存用于每个导出的XML数据的XML模式。那个模式的全限定SQL标识符将被存储为相应的XML data specifier(XDS)中的一个SCH属性。注意,如果没有用XML模式验证导出的XML文档,或者该模式对象不再存在于数据库中,那么相应的XDS中将不包括SCH属性。

下面显示了前面的导出例子的结果。

图4

用一个XQuery导出XML数据

EXPORT命令还允许指定一个XQuery语句,使导出实用程序将一个XQuery的结果导出到一个XML文件中。我们来看看下面的例子。

EXPORT TO custexport.del DEL
XML TO d:\xmlpath
XMLFILE custphone
MODIFIED BY XMLINSEPFILES XMLNODECLARATION
MESSAGES msg.out
SELECT XMLQUERY ('$doc/customerinfo/phone' PASSING INFO AS "doc") FROM customer

前面例子中的XQuery返回存储在CUSTOMER表的XML列INFO下的每个客户的电话号码。这里讨论的所有XML选项和修饰符都适用于XQuery语句。因此,这个例子将为XQuery的每个结果生成单独的XML文档。这个文件存放在d:\xmlpath中,并且以custphone.ext.xml命名,其中ext是一个序列号。此外,文档中不包括XML声明标记。

下面是导出的一个XML文档的内容。

图5

从Control Center中导出

除了从DB2命令行执行EXPORT命令外,还可以使用Control Center进行导出。从Control Center这个工具中,可以指定导出实用程序支持的所有选项和子句,例如大型对象和XML数据。如下图所示,Schedule选项卡允许您创建一个任务,并调度在给定时间运行的导出。

图6
阅读(789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~