为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:WINDOWS
【CPU】:
【问题描述】*:mysql存储过程运行失败,求助
CREATE PROCEDURE "zxapp_ouhai_api"."car_add"( "module" IN varchar(45) , "cmd" IN varchar(45) , "strJson" IN text ) AS
strErrorMsg VARCHAR(256) ;
token_user_id BIGINT ;
token_user_name VARCHAR(128) ;
BEGIN
REPEAT
IF JSON_VALID(strJson) != 1 THEN
SET strErrorMsg = 'app_login.无效json格式';
EXIT;
END IF;
CALL token2useridname(strJson,token_user_id, token_user_name, out_err);
IF out_err IS NOT NULL OR token_user_id IS NULL THEN
SET strErrorMsg = 'token过期,请重新登录';
EXIT;
END IF;
SET _user_id = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.user_id'));
SET _user_name = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.user_name'));
SET _unit = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.unit'));
SET _phone = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.phone'));
SET _cartype = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.cartype'));
SET _number = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.number'));
SET _start_time = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.start_time'));
SET _end_time = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.end_time'));
SET _city = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.city'));
SET _address = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.address'));
SET _task = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.task'));
SET _waiting = JSON_UNQUOTE(JSON_EXTRACT(strJson, '$.waiting'));
SET car_id = '0';
CALL make_rand_id('1001', car_id);
INSERT INTO zxapp_ouhai_db.zxlz_car(id,user_id,user_name,unit,phone,cartype,number,start_time,end_time,city,address,task,waiting,date,state
)VALUES( car_id, _user_id, _user_name, _unit, _phone, _cartype, _number, _start_time, _end_time, _city, _address, _task, _waiting,now(),0
);
IF ROW_COUNT() =0 THEN
SET strErrorMsg = CONCAT('添加失败');
EXIT;
END IF;
IF strErrorMsg != '' THEN
SELECT 400 as code, strErrorMsg as message;
ELSE
SELECT 200 AS code, '' AS message, 'datas' as root_attribute_name,concat('{"style":"','', '"}') as outputstyle;
SELECT car_id AS "key";
END IF;
END;
应该是repeat语句那块的问题,这是我们的repeat语句的使用方法和示例,您可以参考一下:
https://eco.dameng.com/document/dm/zh-cn/pm/dm8_sql-various-control
您好:
由于达梦数据库DSQL语言有部份差异,导致语法分析错误,可以参考达梦SQL语言手册进行调整https://eco.dameng.com/document/dm/zh-cn/pm/dm_sql-introduction.html