यहाँ कुछ ऐसा है जो आप Oracle 12.2 में कर सकते हैं। Oracle 19 में json_object(*)
. का उपयोग करके यह थोड़ा आसान हो सकता है ।
मानक DEPT
. का उपयोग करना SCOTT
. से तालिका उदाहरण के लिए स्कीमा:
declare
items json_object_t;
result clob;
begin
select json_object(
key 'items'
value json_arrayagg(
json_object(
key 'deptno' value deptno,
key 'dname' value dname,
key 'loc' value loc
)
) format json
)
into result
from scott.dept;
items := json_object_t(result);
-- Check what is stored in items
dbms_output.put_line('items.stringify = ' || chr(10) || items.stringify);
end;
/
मैंने stringify
. के लिए एक कॉल शामिल की json_object_t
. की सामग्री दिखाने की विधि वस्तु। एपेक्स इसे json_object_t
. में पसंद कर सकता है डेटा प्रकार - यदि आपको केवल एक स्ट्रिंग की आवश्यकता है, तो आपको उस ऑब्जेक्ट को बनाने की आवश्यकता नहीं है, क्योंकि result
पहले से ही वह स्ट्रिंग है जिसकी आपको आवश्यकता है।
परिणाम इस तरह दिखता है:
items.stringify =
{"items":[{"deptno":10,"dname":"ACCOUNTING","loc":"NEW YORK"},{"deptno":20,"dname":"RESEARCH","loc":"DALLAS"},{"deptno":30,"dname":"SALES","loc":"CHICAGO"},{"deptno":40,"dname":"OPERATIONS","loc":"BOSTON"}]}
PL/SQL procedure successfully completed.
ध्यान दें कि स्ट्रिंग सुंदर स्वरूपित नहीं है - और यह नहीं होना चाहिए। यह ऐसा कुछ है जिसे प्राप्त करने के बाद केवल अंतिम चरण के रूप में किया जाएगा, न कि "संचारण" अंत से।