WEB开发网
开发学院数据库DB2 非 Unicode 数据库中的 XML 阅读

非 Unicode 数据库中的 XML

 2009-11-28 00:00:00 来源:WEB开发网   
核心提示: 这个模式有太多的限制,所以您决定探索如何以 XML 的形式存储数据,非 Unicode 数据库中的 XML(2),但是又不想将现有的数据库迁移至 UTF-8,假设这个书籍数据库还要接纳来自世界各地的新书,如果尝试这么做,会产生 a -873(代码页不匹配)错误,这些书可能用中文、俄语和其他语言编

这个模式有太多的限制,所以您决定探索如何以 XML 的形式存储数据,但是又不想将现有的数据库迁移至 UTF-8。假设这个书籍数据库还要接纳来自世界各地的新书,这些书可能用中文、俄语和其他语言编写。您希望用英语和本地语言存储关于书的元数据(题目、作者、第一段)。每本书可以建模为一个 XML 文档,取决于这本书的语言,这个 XML 文档的编码方式可能不同。那么,如何在非 Unicode pureXML 数据库中插入、存储和查询这些文档呢?

非 Unicode 数据库中对 XML 的新的支持

在 DB2 Viper 2 中,用户现在可以在任何新的或已有的数据库中,在新的或已有的表中创建 XML 列。现在不再要求使用 Unicode 码集。创建 XML 类型的列的格式是:

CREATE TABLE <table_name> (<column_name1> XML);

请注意 CREATE TABLE 的语法仍然和以前一样。

例子:


清单 2. 创建 XML 类型的列

CREATE TABLE xmlbookcat ( 
 ISBN BIGINT NOT NULL PRIMARY KEY, 
 BOOK XML 
); 

为了修改一个表以添加一个 XML 列,必须能够合法地添加一个列到表中(即表中不能有不带 DEFAULT 子句的 NOT NULL 列,并且表中行的大小必须能够容纳新的 XML 列,这个列长度为 80 字节)。 DB2 允许用户在 CREATE TABLE 或 ALTER TABLE 的列声明中使用 CCSID UNICODE 或 CCSID ASCII 子句,以创建以不同于数据库其他部分的字符码集标识符(CCSID)存储的表。在非 Unicode 数据库中,将 XML 列添加到具有 CCSID UNICODE 属性的表中是非法的。那样的表不存储在数据库代码页中,在这些表中 XML 不受支持。如果尝试这么做,会产生 a -873(代码页不匹配)错误。在非 Unicode 数据库中创建一个新的用于存储 XML 数据的表。

上一页  1 2 3 4 5 6 7  下一页

Tags:Unicode 数据库 XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接