2015-08-28 42 views
1


在Oracle數據庫11g 11.2.0.3.0 64位生產中,我想知道是否有可能在使用XMLTABLE和XQuery的查詢中忽略區分大小寫;例如,假設我們有標籤的XML文件:Oracle XmlTable和XQuery:忽略大小寫敏感

/Warehouse 
/Warehouse/WaterAccess 
/Warehouse/RailAccess 

我們執行以下的(從http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions253.htm#SQLRF06232爲例):

SELECT warehouse_name warehouse, 
    warehouse2."Water", warehouse2."Rail" 
    FROM warehouses, 
    XMLTABLE('/Warehouse' 
    PASSING warehouses.warehouse_spec 
    COLUMNS 
    "Water" varchar2(6) PATH '/Warehouse/WaterAccess', 
    "Rail" varchar2(6) PATH '/Warehouse/RailAccess') 
    warehouse2; 


WAREHOUSE Water Rail 
----------------------------------- ------ ------ 
Southlake, Texas Y N 
San Francisco Y N 
New Jersey N N 
Seattle, Washington N Y 

但是,由於種種原因,接下來的XML文件包含以下標籤(一些字母小寫):

/warehouse 
/warehouse/WaterAccess 
/warehouse/Railaccess 

相同的查詢將失敗。
是否有任何解決方法(例如使用某種UPPER)?
謝謝,
伊戈爾

+0

XML是**大小寫敏感的**由萬維網聯盟(W3C)的定義 - 相反,HTML,例如。所以'/ warehouse'與'/ Warehouse'不同,你應該改正你的源數據。 –

+0

@Wernfried謝謝你的回答;是的,你是對的,但源文件是由第三方應用程序生成的,所以我想處理標記中的任何未來錯誤。 – Yellow75

回答

0
SELECT warehouse_name warehouse, 
    warehouse2."Water", warehouse2."Rail" 
    FROM warehouses, 
    XMLTABLE('/*/*' 
    PASSING warehouses.warehouse_spec 
    COLUMNS 
    "Water" varchar2(6) PATH '/WaterAccess', 
    "Rail" varchar2(6) PATH '/RailAccess') 
    warehouse2;