我翻了sql语言手册也没有找到相似的方法,这里的json_length、json_key和json_extract应该怎么修改
主要是想提取json中的键值为json数组
– SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE OR REPLACE PROCEDURE PROC_Update_da_category(json VARCHAR2, New_ID VARCHAR2)
IS
Length number;
sqlstring varchar;
indexs number;
sqlstr varchar;
BEGIN
Length := JSON_LENGTH( json );
sqlstring := 'update da_category set ';
indexs := 0;
WHILE
indexs < length LOOP
Content := REPLACE ( REPLACE ( JSON_KEYS( json, “$[” || indexs || “]”), ‘["’, ‘’ ), ‘"]’, ‘’ );
val := JSON_EXTRACT(
json,
‘$[’ || indexs || ‘].’ || Content || ‘’);
IF
( indexs + 1 = length ) THEN
sqlstr := Content || ‘=’ || val;
sqlstring := concat( sqlstring, sqlstr );
END IF;
IF
( indexs + 1 < length ) THEN
sqlstr := Content || ‘=’ || val || ‘,’;
sqlstring := concat( sqlstring, sqlstr );
END IF;
indexs := indexs + 1;
END LOOP;
sqlstring := sqlstring || ’ where ’ || ‘da_category.ID’ || ‘="’ || New_ID || ‘"’;
EXECUTE IMMEDIATE sqlstring;
END
;
alter procedure PROC_Update_da_category compile;
达梦提供了json_value和json_query两个函数。详细内容可参考《DM8_SQL语言使用手册.pdf》手册,第 18 章 JSON。
其它的功能看看能否用计算机编程语言,例如java,python实现。