使用 JSON 的 Oracle Rest 数据服务 POST

标签 oracle oracle-apex

我在 application express(apex) 中使用 oracle rest 数据服务。 我需要知道如何更新/插入数据库,使用 Json 格式的 http 请求。其实我需要知道的,

请求是来自REST客户端的Json格式请求,

{
  "items" : [
    {"PROJECTID"       : 1},
    {"PROJ_NAME"       : "rest"},
    {"PROJ_CLIENT"     : "Sam"}
  ],
  "hasMore" : false
}

如何在顶点插入/更新数据库,

begin
insert into projects(PROJECTID,PROJ_NAME,PROJ_CLIENT) 
values (:PROJECTID,:PROJ_CLIENT,:PROJ_NAME);
commit;
end;

最佳答案

我找到了答案,这不容易做到。首先我们需要获取请求的主体。这可以使用 body (:body) 的绑定(bind)变量来完成。但是这个主体变量是 blob 数据类型。

blob_body BLOB := :body;

然后将其转换为 CLOB 变量,

clob_variable CLOB := convert_to_clob(blob_body);

现在最简单的抽象方法是转换为“varchar2”并使用像 PL/JSON 这样的库来提取 json 中的数据。

关于使用 JSON 的 Oracle Rest 数据服务 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167526/

相关文章:

java - 通过 java 从网络机器连接到 Oracle 11g 失败

sql - 来自光标的 Oracle 最后记录

oracle - 系统权限问题

sql - 具有像 where 0=0 这样的条件的确切含义是什么?

mysql - 顶点 ORA-01008 : not all variables bound on host variables

oracle - 为什么参数的默认值是null?

oracle-apex - 顶点 5 : Dynamic action set page item value

oracle - 哪个替换字符串用于 oracle apex5 中的校验和

javascript - 单击 apex oracle 中的链接打开链接

oracle - 无法在 Oracle APEX 18.1.0.00.45 上禁用 session 状态保护以更新页面项目的动态操作