2017-06-21 31 views

回答

2

在Oracle 12.2,你應該能夠使用:

SELECT JSON_OBJECTAGG(id VALUE text) 
FROM XMLTABLE(
     '/xml/*' 
     PASSING XMLTYPE('<xml><name>himanshu</name></xml>') 
     COLUMNS id VARCHAR2(200) PATH './name()', 
       text VARCHAR2(200) PATH './text()' 
     ); 

我不是一個12C系統上,因此這是未經測試。

在早期版本中,你可以寫一個Java功能[1][2]使用許多Java JSON packages之一進行轉換,然後將其加載到使用loadjava utility(或CREATE JAVA statement),然後使用該數據庫。

-2

您可以使用XML到JSON過濾器將XML文檔轉換爲JavaScript對象表示法(JSON)文檔。對於所使用的映射約定的詳細信息,請參閱:Github- Mapping convention

配置

要配置XML到JSON過濾器,指定以下字段:

名稱:

輸入一個合適的名稱,以反映這個過濾器的作用。

自動插入JSON數組界限:

選擇此選項將嘗試從傳入XML文檔自動重建JSON陣列。該選項默認爲選中狀態。

[Note] 如果傳入的XML文檔包含處理指令,則無論此選項設置如何,都會重建JSON數組。如果XML文檔不包含,並且選擇了此選項,則篩選器會嘗試通過檢查元素名稱來猜測應該是數組的一部分。

+0

OP在Oracle數據庫中詢問這個問題 - 你應該擴展你的答案,以顯示在數據庫中運行這些步驟和代碼所需的步驟和代碼(例如,使用'loadjava'實用程序和'CREATE JAVA'語句來加載Jar和自定義Java函數,然後創建函數.. AS語言JAVA ...創建一個Oracle函數來調用它)並提供如何使用它的示例。目前,這是對Oracle問題的Java解答,因此不是非常有用(並且大多數情況下只是鏈接到非現場資源,而不是包含答案中的必需代碼)。 – MT0