PLSQL looping through JSON object(PLSQL循环通过JSON对象)
本文介绍了PLSQL循环通过JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
基本上我有一个类似于[{";group";:";groupa";,";Status";:";active";},{";group";:";groupb";,";Status";:";inactive";}]的json,我只想循环和提取组,并将它们保存在变量中,以便循环并将组与某个变量进行比较。
例如
group := 'groupc'
while counter < jsonGroup.count
loop
if jsonGroup(counter) := group then ....
是否可以将组作为数组或表保存到jsonGroup中?
谢谢
推荐答案
可以使用JSON_ARRAY_T
功能将值存储到数组中,如MT0所述,或者使用JSON_TABLE
,如果您的JSON已经存储在表中,这可能会更好。
下面是如何使用这两种方法将组存储到数组中的示例。
DECLARE
l_json_text VARCHAR2 (100)
:= '[{"group":"groupa","status":"active"},{"group":"groupb","status":"inactive"}]';
TYPE tab_t IS TABLE OF VARCHAR2 (100);
l_table tab_t := tab_t ();
l_array json_array_t;
PROCEDURE print_tab
IS
BEGIN
FOR i IN 1 .. l_table.COUNT
LOOP
DBMS_OUTPUT.put_line (l_table (i));
END LOOP;
END;
BEGIN
l_array := json_array_t (l_json_text);
l_table.EXTEND (l_array.get_size);
FOR i IN 1 .. l_array.get_size
LOOP
l_table (i) := TREAT (l_array.get (i - 1) AS json_object_t).get_string ('group');
END LOOP;
DBMS_OUTPUT.put_line ('After JSON_ARRAY_T method');
print_tab;
l_table.delete;
DBMS_OUTPUT.put_line ('After delete');
print_tab;
SELECT grp
BULK COLLECT INTO l_table
FROM JSON_TABLE (l_json_text, '$[*]' COLUMNS grp PATH '$.group');
DBMS_OUTPUT.put_line ('After JSON_TABLE method');
print_tab;
END;
/
这篇关于PLSQL循环通过JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PLSQL循环通过JSON对象


猜你喜欢
- HEROKU - 无法运行 git push heroku master 2021-01-01
- 创建索引时,具有 mysql 数据库迁移的实体框架失败 2022-01-01
- 如何在oracle中获取字符串最右边的10个位置 2021-01-01
- SQL Server 将 Varchar 转换为日期时间 2021-01-01
- Oracle SQL 转置 2022-01-01
- MySQL(Windows10)使用 MyISAM 表进行 FULLTEXT 搜索不起作用 2022-01-01
- 如何将uuid存储为数字? 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 在 Oracle 中创建 CTE 2022-01-01
- MySql 错误 150 - 外键 2021-01-01