为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
达梦8数据库支持在存储过程遍历JSON字段里的key内容吗?
这是oracle支持json包的函数例子
看题目,是需要在存储过程里实现遍历查看json字段功能;如果需要查看dm.key信息,请使用语句select * from v$license;
存储过程中实现调用查询json字段值小例子,可参考:
drop table j_purchaseorder;
–创建po_document的json类型字段表
CREATE TABLE j_purchaseorder
(id int NOT NULL,
date_loaded TIMESTAMP (6) WITH TIME ZONE,
po_document VARCHAR
CONSTRAINT ensure_json CHECK (po_document IS JSON));
–插入json数据
INSERT INTO j_purchaseorder VALUES (1,SYSTIMESTAMP,‘{ “PONumber” : 1600,
“KHMC” : “张三”,
“ZJLB” : “OZJB”,
“BH” : “3501031948506655”,
“DH” :“88888888888”}’);
commit;
–创建存储过程
CREATE PROCEDURE “SYSDBA”.“func_json_test”
AS
VARNAME INT;
BEGIN
SELECT json_query(po_document,‘$.*’ RETURNING VARCHAR PRETTY WITH
WRAPPER ERROR ON ERROR) from j_purchaseorder;
END;
–在存储过程中查询json数据
call “SYSDBA”.“func_json_test”();
最后,再对查询出json数据进行处理遍历显示即可。
看题目,是需要在存储过程里实现遍历查看json字段功能;如果需要查看dm.key信息,请使用语句select * from v$license;
存储过程中实现调用查询json字段值小例子,可参考:
drop table j_purchaseorder;
–创建po_document的json类型字段表
CREATE TABLE j_purchaseorder
(id int NOT NULL,
date_loaded TIMESTAMP (6) WITH TIME ZONE,
po_document VARCHAR
CONSTRAINT ensure_json CHECK (po_document IS JSON));
–插入json数据
INSERT INTO j_purchaseorder VALUES (1,SYSTIMESTAMP,‘{ “PONumber” : 1600,
“KHMC” : “张三”,
“ZJLB” : “OZJB”,
“BH” : “3501031948506655”,
“DH” :“88888888888”}’);
commit;
–创建存储过程
CREATE PROCEDURE “SYSDBA”.“func_json_test”
AS
VARNAME INT;
BEGIN
SELECT json_query(po_document,‘$.*’ RETURNING VARCHAR PRETTY WITH
WRAPPER ERROR ON ERROR) from j_purchaseorder;
END;
–再存储过程中查询json数据
call “SYSDBA”.“func_json_test”();
最后,对查询出json数据进行处理遍历显示。