需要在 pl/sql 中解析 JSON 请求

Need to parse a JSON request in pl/sql

我最近安装了 PL/JSON 软件包,使用它需要一些帮助。我收到一个请求 (POST),我需要解析它以与我的数据进行比较。请求的格式如下:

{
  "value1": "ABC123",
  "list1": [
    "1",
    "2"
  ]
}

请求验证指定的 value1 对于指定的 list1 值至少有一个有效的 value2

我们有一个 table,其列匹配我们数据库中的 value1, value2, and list1 个值。我正在使用带有游标的存储过程来获取这些值,如下所示:

cursor valid_list1_values is
select list1_values
from myTable
where value1 = ;

我卡在 where 子句上了。此过程用于传递两个变量而不是 JSON,我使用其中一个变量来缩小游标结果集。

如何解析 JSON 对象和嵌套的 JSON 列表以获得 Value1 来限制我的光标?

首先,您需要将JSON 字符串解析为JSON 对象。然后你可以使用 JSON 对象方法来访问数据:

json in_data := json('{"value1":"ABC123", "list1":[1,2]}');
varchar2 json_value1 := in_data.get_string('value1');

此时您可以使用光标中的值:

cursor valid_list1_values is
select list1_values
from myTable
where value1 = json_value1;