OracleApex-将JSON对象分配给变量以返回



我必须通过SQL查询生成一个JOSN对象。最后,我必须将这个JSON对象保存到一个变量中,以便稍后返回。因此,我为ajax回调提供了以下代码片段:

DECLARE
json_result JSON_OBJECT_T;
BEGIN
SELECT JSON_OBJECT('if'          VALUE ID,
'data'        VALUE DATA_BLOB,
'upload_date' VALUE UPLOAD_DATE FORMAT JSON) INTO json_result FROM TEST_TABLE WHERE ID = 0;
apex_json.open_object;
apex_json.write('success', true);
apex_json.write('result', json_result);
apex_json.close_object;
EXCEPTION
WHEN OTHERS THEN
apex_json.open_object;
apex_json.write('success', false);
apex_json.write('message', sqlerrm);
apex_json.close_object;
END;

但不太可能出现错误:

PL/SQL: ORA-00932: inconsistent datatypes: expected UDT got CHAR  

我找不出这里出了什么问题。

我们非常感谢您的帮助。

致以最良好的问候,
Filip。

您不需要apex_json,这可以直接在sql中完成。这是EMP表上的一个例子。

SELECT JSON_OBJECT (
KEY 'success' VALUE 'true',
KEY 'employees' VALUE (
SELECT JSON_ARRAYAGG(
JSON_OBJECT (
KEY 'ename' VALUE e.ename,
KEY 'empno' VALUE e.empno,
KEY 'job' VALUE e.job
)
)
FROM   emp e
)
) AS employees
FROM   dual;

因此,要将该值分配给页面项,请创建类型为"的计算;SQL查询(返回单个值(";在渲染之前,在任何进程点上使用上面的代码。

最新更新