xml為:
<Items><item xmlns="0"><ItemId>32</ItemId></item></Items>
Oracle中通過xml獲取資料:
SELECT *
FROM XMLTABLE(XMLNAMESPACES('0' AS "ns1"),
'/Items/ns1:item' PASSING
XMLTYPE('<Items><item xmlns="0"><ItemId>32</ItemId></item></Items>')
COLUMNS ITEM_ID VARCHAR2(50) PATH 'ns1:ItemId')
在個別資料庫能執行正常,在有些資料庫執行報錯:
ORA-19112: 賦值時出錯:
XVM-01046: [XQST0046] Invalid URILiteral
1 declare namespace ns1="0";/Items/ns1:item
- ^

把xmlns的值換成帶有字母的字串后執行正常(在一些資料庫,xmlns的值為數字可以正常執行,有些不可以的換成帶字母的字串可以正常執行,還不清楚為什么)
另外,XML內容含有小于號"<"和"&"需要轉義,否則會報錯:
"<"轉義"<"
"&"轉義"&"
var str="***";//還有&或<的字串
str=str.replace(new RegExp("<", "g"), "<").replace(new RegExp("&", "g"), "&");
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/184168.html
標籤:其他
