我需要構建一個包含幾個 varchar 的程序,我需要將它們合并到一個 JSON 物件中,該物件應該是該程序的輸出。
例如:
PROCEDURE json (p_input varchar2, o_json (datatype?) is
v_input_ varchar2(200);
v_str1 varchar2(2000);
v_str2 varchar2(2000);
begin
v_str1 := 'test1';
v_str2 := 'test2';
end;
我想要做的是將輸出創建為由兩個 varchars v_str1 和 v_str2 組成的 JSON,其 KEY 值為“Machine”和“Serial”。
任何想法如何做到這一點?
感謝您的幫助。
uj5u.com熱心網友回復:
您可以使用:
CREATE PROCEDURE json(
i_str1 IN VARCHAR2,
i_str2 IN VARCHAR2,
o_json OUT CLOB
)
IS
BEGIN
SELECT JSON_OBJECT(
KEY 'Machine' VALUE i_str1,
KEY 'Serial' VALUE i_str2
)
INTO o_json
FROM DUAL;
END;
/
然后:
DECLARE
v_json CLOB;
BEGIN
json('a', 'b', v_json);
DBMS_OUTPUT.PUT_LINE(v_json);
END;
/
輸出:
{"Machine":"a","Serial":"b"}
db<>在這里擺弄
uj5u.com熱心網友回復:
你可以使用JSON_OBJECT:
SELECT JSON_OBJECT (KEY 'Machine' IS some_object.Machine,
KEY 'Serial' IS some_object.Serial ) "your JSON"
FROM (SELECT 'test1' AS Machine
, 'test2' AS Serial
FROM dual) some_object;
參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504581.html
