程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 操作 XML 數據庫類型、Oracle XMLType(4)

C# 操作 XML 數據庫類型、Oracle XMLType(4)

編輯:關於C語言

三、插入一些數據

3.1 插入數據

INSERT INTO XML_USER_INFO VALUES (1,'用戶1'
    ,XMLType('<Phones xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:www.w3.org/2001/XMLSchema">
 <Phone>
    <Code>13940588000</Code>
    <Type>移動</Type>
 </Phone>
 <Phone>
    <Code>024-22222222-1</Code>
    <Type>固定</Type>
 </Phone>
 <Phone>
    <Code>8788888</Code>
    <Type>未知</Type>
 </Phone>
</Phones>'
    )
)
/

3.2測試約束有效性(在Type改小靈通)

INSERT INTO XML_USER_INFO VALUES (2,'用戶2'
    ,XMLType('<Phones xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:www.w3.org/2001/XMLSchema">
  <Phone>
    <Code>13940588000</Code>
    <Type>移動</Type>
  </Phone>
  <Phone>
    <Code>13940588000</Code>
    <Type>固定</Type>
  </Phone>
  <Phone>
    <Code>8788888</Code>
    <Type>小靈通</Type>
  </Phone>
</Phones>'
    )
)
-- 返回錯誤:ORA-31038: enumeration 值無效: "小靈通"
-- 證明 PhoneType 的 XMLSchema 約束是有效的(廢話);
/

….插入我就不多寫了都這模樣

注意:大家可以看出xmltype這裡的數據,就是 Phones 對象XML序列化後的的樣子

也就是說我們可以比較方便把類直接插入數據庫,如果用平面表這裡要執行 1*n次的 insert

代碼例子我就不提供了先,因為太簡單了 XMLType( :XMLString ) 然後給對象序列化了

給到 :XMLString 參數裡就可以了;

3.3 本步驟總結

如果開發的話,可以節省一些語句;尤其適合那種,子表數據一次插入很少的情況

而且用 select 讀取的時候,應該可以直接反序列化為對象

能省去往實體類賦值的代碼量;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved