注册

MYSQL中存储过程有函数方法是JSON_LENGTH和JSON_KEYS,在达梦中有类似的吗,如何替换

惊蛰 2022/03/14 1051 1 已解决

我翻了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;

回答 0
暂无回答
扫一扫
联系客服