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

C# 操作 XML 資料庫類型:Oracle XMLType 實戰(三)——建表、物件關聯儲存與嵌套表約束

     編輯:關於C語言

建立 XMLType 資料表


CREATE TABLE XML_USER_INFO (
  NPK integer,
  USER_NAME NVARCHAR2(50),
  Phones XMLType,
  primary key (NPK)
) 
XMLTYPE COLUMN Phones STORE AS OBJECT RELATIONAL
XMLSCHEMA "https://www.OracleDemo.com/Phones.xsd" ELEMENT "Phones"
VARRAY Phones.XMLDATA."Phone" STORE AS TABLE XML_USER_INFO_XMLNT01;

關鍵選項解析

  • STORE AS OBJECT RELATIONAL:物件關聯式儲存,效能優於二進位
  • XMLSCHEMA ... ELEMENT:綁定 XSD 進行驗證
  • VARRAY ... STORE AS TABLE:將 Phone 陣列展開為嵌套表,支援欄位級約束

嵌套表主鍵約束


ALTER TABLE XML_USER_INFO_XMLNT01 
ADD constraint PK_XML_USER_INFO_XMLNT01 primary key (NESTED_TABLE_ID, "Code");

確保同一用戶下電話號碼 (Code) 不重複。命名約束便於異常診斷。

限制:集合元素無法加外鍵

Phone 屬性 (號碼、型別) 無法建立 FK,只能靠 XSD 約束。父層級 Phones 屬性可加 FK。

階段小結

  • Schema 由類別產生,節省設計時間
  • 學習成本必要但值得
  • 無 Schema 也能建 XMLType,但長期維護風險大
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved