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;
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。