首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 9 Viper 快速入門:建立 XML 資料庫、匯入驗證與查詢準備

     編輯:DB2 教學

目標

完成三項核心任務:建立管理 XML 的資料庫物件 → 使用 INSERT/IMPORT 載入 XML 資料 → 以 XML Schema 驗證資料完整性。後續文章將涵蓋 SQL/XML、XQuery 查詢與 Java 應用開發。

一、建立 Unicode 資料庫與表

唯有 Unicode 資料庫才能同時儲存 XML 文件與傳統 SQL 型別。

CREATE DATABASE test USING CODESET UTF-8 TERRITORY US;
CONNECT TO test;

CREATE TABLE items (
  id INT PRIMARY KEY NOT NULL,
  brandname VARCHAR(30),
  itemname VARCHAR(30),
  sku INT,
  srp DECIMAL(7,2),
  comments XML
);

CREATE TABLE clients (
  id INT PRIMARY KEY NOT NULL,
  name VARCHAR(50),
  status VARCHAR(10),
  contactinfo XML
);

關鍵特性:XML 欄位 無需預先定義結構,單一欄位可存放不同 Schema 或無 Schema 的 Well-formed XML 文件。

二、建立視圖

CREATE VIEW goldview AS
SELECT id, name, contactinfo
FROM clients WHERE status = 'Gold';

視圖操作與傳統表無異,支援 XML 欄位投影。

三、載入 XML 資料

方法 A:互動式 INSERT (適合少量測試)

使用 DB2 Command Editor (Control Center → Tools → Command Editor):

CONNECT TO test;
INSERT INTO clients VALUES (77, 'John Smith', 'Gold',
  XMLPARSE(DOCUMENT '111 Main St., Dallas, TX, 00112' PRESERVE WHITESPACE)
);

XMLPARSE 將字串轉為 XML 型別值。

方法 B:IMPORT 工具批次載入 (適合生產環境)

  1. 準備定界 ASCII 檔 (clients.del),每行一筆,XML 資料以 XDS (XML Data Specifier) 參考外部檔:
77,"John Smith","Gold",""
78,"Ella Kimpton","Gold",""
...
  1. XML 檔範例 (client3227.xml):

  456 Oak Ave, Seattle, WA, 98101
  206-555-0101
  ella@kimpton.com

  1. 執行匯入:
IMPORT FROM clients.del OF DEL XML FROM C:/XMLFILES
INSERT INTO user1.clients;

若某列無 XML 檔,該欄位存入 NULL。

四、XML Schema 驗證

步驟 1:建立 Schema

可用文字編輯器、WebSphere Studio (右鍵 XML → Generate → XML Schema) 或專用工具 (如 MDXSYS) 產生。範例 Schema (ClientInfo.xsd) 允許 0~5 個 email 元素,型別為字串。

步驟 2:向 DB2 註冊 Schema

-- 視情況增加應用程式堆疊
UPDATE DB CFG FOR test USING APPLHEAPSZ 10000;

-- 註冊並完成
REGISTER XMLSCHEMA 'https://mysample.org'
FROM 'C:/XMLFiles/ClientInfo.xsd'
AS user1.mysample COMPLETE;

註冊不綁定特定表/欄位,一個 Schema 可驗證多個 XML 欄位。

步驟 3:匯入時驗證

IMPORT FROM clients.del OF DEL XML FROM C:/XMLFILES
XMLVALIDATE USING XDS DEFAULT user1.mysample
INSERT INTO user1.clients;

違反 Schema 的整列資料會被拒絕,IMPORT 輸出會顯示拒筆數 (圖 8)。XMLVALIDATE 子句亦可用於 INSERT 陳述式。

五、索引效能提示

生產環境務必對 XML 欄位建立適當的 XML 索引 (參考文件「DB2 pureXML 索引技術」),否則大量資料查詢將全表掃描。

結語

DB2 Viper 提供原生 XML 能力:新資料型別、引擎級自動儲存處理、Schema 驗證。本文示範建庫、建表、載入 (INSERT/IMPORT)、驗證全流程。下一步將探討 SQL/XML 與 XQuery 查詢技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved