在APEX restful service中,如果我用sql查询选择GET方法,所有参数都会进入url字符串。这意味着最终用户可以自己更改参数...所以我应该使用带有pl / sql块的POST。但是,如何从此方法返回数据? 在GET中我有像
这样的查询SELECT *
FROM table
WHERE id = :PARAM
在POST中它变成???
DECLARE
BEGIN
SELECT *
FROM table
WHERE id = :PARAM
END;
我在文档中找不到任何有用的东西,只关于GET方法。
答案 0 :(得分:4)
我知道这是一个老问题,但我最近遇到了同样的问题,我自己找到了解决方案。
也许我的解决方案对您有用。我将apex与PL/JSON结合使用来生成和解析pl / SQL中的JSON对象。当我在rest webservices中使用post方法时,我在资源处理程序的源代码中执行以下操作:
declare
output json;
begin
apex_plugin_util.print_json_http_header;
output:= test_function(:INPUT_JSON_STRING);
sys.htp.p(output.to_char);
end;
然后,在我的PL / SQL函数中:
CREATE OR REPLACE FUNCTION test_function (INPUT_JSON_STRING VARCHAR2)
RETURN JSON
IS
my_json json;
aux_string varchar2;
BEGIN
my_json :=json(INPUT_JSON_STRING);
aux_string:=my_json.get ('something').get_string;
(...)
RETURN my_json;
EXCEPTION
END test_function;
我的博客中有一个更详细的example,但它是西班牙语,抱歉。
希望这有帮助。