【发布时间】:2018-02-21 18:10:46
【问题描述】:
在 Oracle 12c 中,并使用 APEX(但我不知道这是否相关)...我想创建一个通用 REST 调用,我可以在其中传入 SQL 语句(仅限选择)并有一个通过 JSON 返回的数据集。这个数据集可能有几列或多列......
我正在使用 sys_refCursor,并且可以使静态 SQL 语句工作,但我无法使用 DYNAMIC SQL 语句使其工作。现在,我只是想把语句放入一个变量中。一旦这工作正常,我会将 SQL 语句传递到 REST 调用中,而不是将其硬编码到变量中。下面的代码按照编写的方式工作,但我想要的是使用 2 条注释行代替硬编码“open c for ...”行。我做错了什么?
DECLARE
c sys_refcursor;
sql_stmt VARCHAR2(200);
BEGIN
apex_json.open_object;
open c for select * from tabs where rownum < 5;
--sql_stmt := 'open c for select * from tabs where rownum < 5';
--EXECUTE IMMEDIATE sql_stmt;
apex_json.write('rows', c);
apex_json.close_all;
end;
【问题讨论】:
标签: json oracle rest dynamic-sql