[英]How to turn generate JSON with Oracle SQL
我正在嘗試使用Oracle獲取JSON字符串
我的Oracle版本是12.1.0.2.0,由於無法升級,所以不能使用JSON_ARRAYAGG
。
基於客戶端的解決方案,其中客戶端為Oracle SQL Developer 。
查詢:
SELECT /*json*/ ID, NAME CUST_NAME, ADDRESS,
CURSOR(
SELECT ACCOUNT_ID,
NAME ACCOUNT_NAME,
BALANCE
FROM ACCOUNTS
WHERE CUST.ID = CUSTOMER_ID) AS "accounts",
'../customers/' || ID || '/pic' AS "$signature"
FROM customers cust
有趣的部分是/*json*/
位。 這告訴我們的腳本引擎將結果和格式轉換為JSON。 它還支持csv,insert語句,xml,html等。
該查詢從我的表返回3行,並返回一個會計位,這是通過查詢的CURSOR位每行嵌套的結果。
通過F5執行(作為腳本執行)時,SQL Developer返回此JSON
{
"results":[
{
"columns":[
{
"name":"ID",
"type":"NUMBER"
},
{
"name":"CUST_NAME",
"type":"VARCHAR2"
},
{
"name":"ADDRESS",
"type":"VARCHAR2"
},
{
"name":"accounts",
"type":"REFCURSOR"
},
{
"name":"$signature",
"type":"VARCHAR2"
}
],
"items":[
{
"id":1,
"cust_name":"Jeff",
"address":"101 Maple Ln",
"accounts":[
{
"account_id":100,
"account_name":"College Fund",
"balance":25.99
},
{
"account_id":101,
"account_name":"NewCar",
"balance":30000
}
],
"$signature":"..\/customers\/1\/pic"
},
{
"id":2,
"cust_name":"Kris",
"address":"911 Pine Dr",
"accounts":[
{
"account_id":200,
"account_name":"Checking",
"balance":42.25
},
{
"account_id":201,
"account_name":"Savings",
"balance":64000
}
],
"$signature":"..\/customers\/2\/pic"
},
{
"id":3,
"cust_name":"Colm",
"address":"404 Irish Corner",
"accounts":[
{
"account_id":300,
"account_name":"Potatoes",
"balance":2500.75
},
{
"account_id":301,
"account_name":"Speeding Tickets",
"balance":1900
}
],
"$signature":"..\/customers\/3\/pic"
}
]
}
]
}
我們還有一個中間層解決方案, Oracle REST數據服務 。 這使您可以使用GET處理程序創建RESTful服務來運行SQL或PL / SQL塊,然后以JSON返回結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.