PL SQL - 追加到 JSON_OBJECT

问题描述 投票:0回答:1

我正在尝试创建一个 JSON_OBJECT 来存储表中的数据。我只是不知道如何在创建 JSON_OBJECT 后附加数据。我没有包含剩余两列的原因是关于hired_date和emp_status,在添加json_object之前我会做一些if else条件。

DECLARE
   v_output_data CLOB;

     CURSOR get_info(in_dept_id VARCHAR2) IS
       SELECT last_name,first_name, hired_date, emp_status
         FROM emp_directory_info
       WHERE source_system_id = in_dept_id ;
        
      BEGIN
        
       FOR record_ctr IN get_info('acct') LOOP
        
       v_output_data:= v_output_data ||JSON_OBJECT
            ('Souce' VALUE record_ctr.last_name,
             'Received' VALUE record_ctr.first_name        
            );

--Want to put some if else condition here, after that I will append the 'hired_date' and 'emp_status' column from the existing JSON_OBJECT above.
                   

        END LOOP;    
      END;
plsql
1个回答
1
投票
DECLARE    v_output_data CLOB;    v_json_obj JSON_OBJECT_T;
      CURSOR get_info(in_dept_id VARCHAR2) IS
    SELECT last_name, first_name, hired_date, emp_status
      FROM emp_directory_info
     WHERE source_system_id = in_dept_id; BEGIN   FOR record_ctr IN get_info('acct') LOOP    v_json_obj := JSON_OBJECT_T('Souce' VALUE record_ctr.last_name,
                              'Received' VALUE record_ctr.first_name);
       IF record_ctr.emp_status = 'Active' THEN
     v_json_obj.PUT('hired_date', TO_CHAR(record_ctr.hired_date, 'YYYY-MM-DD'));    ELSE
     v_json_obj.PUT('emp_status', record_ctr.emp_status);    END IF;
       v_output_data := v_output_data || v_json_obj.TO_CLOB();   END LOOP; END;
© www.soinside.com 2019 - 2024. All rights reserved.