Я пытаюсь найти простой способ генерации SQL-запроса как JSON, но я подхожу. Это запрос:Уменьшить Oracle Query, чтобы вернуть только владельца
SELECT DISTINCT owner
FROM dba_segments
WHERE owner NOT IN ('SYS', 'SYSTEM', 'EXFSYS', 'DBSNMP', 'SQLTXPLAIN', 'XDB', 'WMSYS', 'PERFSTAT', 'OUTLN');
То, что я хочу, чтобы этот экран JSON похож на это:
{
"data": [{
"{#Owner}": "ABC123Test"
}, {
"{#Owner}": "Accounting"
}, {
"{#Owner}": "Treasury"
}, {
"{#Owner}": "Production1"
}]
}
В SQL Server я бы просто использовать XML PATH и сделать что-то вроде этого -
SELECT '{"data":[' + (SELECT CAST(STUFF((SELECT ',' + '{"{#Owner}":"' + DISTINCT[owner] + '"}'
FROM dba_segments
where owner not in ('SYS', 'SYSTEM', 'EXFSYS', 'DBSNMP', 'SQLTXPLAIN', 'XDB', 'WMSYS', 'PERFSTAT', 'OUTLN') FOR XML PATH('')), 1, 1, '') AS VARCHAR(MAX))) + ']}' as 'XML_F52E2B61-18A1-11d1-B105-00805F49916B'
Обратите внимание, что все имена макросов/переменных должны быть заглавными, например {#OWNER}. – Richlv