注册

MySQL数据迁移之后存储过程报错

斑马还没睡 2023/12/07 602 1

报错信息:警告:创建的对象带有编译错误
image.png
image.png
创建的语句:

CREATE OR REPLACE PROCEDURE "txivsbase"."sp_statistical_GetRoundsDepData"( in_TaskRecordId IN VARCHAR(32) , in_DepId IN VARCHAR(32) , in_UserId IN VARCHAR(32) ) AS
BEGIN
DROP TABLE IF EXISTS dr;
CREATE TEMPORARY TABLE dr as
SELECT du.iId AS szDepId, dc.szResId FROM depuserrelate du INNER JOIN depcamerarelate dc ON dc.iId = du.iId
WHERE du.szUserId = in_UserId;
DROP TABLE IF EXISTS gr;
CREATE TEMPORARY TABLE gr AS
SELECT gu.iId AS szGroupId, gc.szResId FROM groupuserrelate gu INNER JOIN groupcamerarelate gc ON gc.iId = gu.iId
WHERE gu.szUserId = in_UserId;
--查询用户对应的摄像机资源
DROP TABLE IF EXISTS tmp_table_res;
CREATE TEMPORARY TABLE tmp_table_res(
szResId VARCHAR (32)
);
INSERT INTO tmp_table_res(szResId)
(SELECT DISTINCT gr.szResId
FROM dr
INNER JOIN gr
ON dr.szResId = gr.szResId
INNER JOIN taskcamrelate tc
ON tc.szResId = gr.szResId
INNER JOIN taskrecordinfo tr
ON tc.szTaskId = tr.szTaskId
WHERE tr.ID = in_TaskRecordId
);
SELECT COUNT(*) INTO resCount FROM tmp_table_res;
IF resCount = 0 THEN
INSERT INTO tmp_table_res(szResId)
(SELECT DISTINCT dr.szResId
FROM
(SELECT du.iId AS szDepId, dc.szResId FROM depuserrelate du INNER JOIN depcamerarelate dc ON dc.iId = du.iId
WHERE du.szUserId = in_UserId
) dr
INNER JOIN taskcamrelate tc
ON tc.szResId = dr.szResId
INNER JOIN taskrecordinfo tr
ON tc.szTaskId = tr.szTaskId
WHERE tr.ID = in_TaskRecordId
);
END IF;
DROP TABLE IF EXISTS tmp_table_result;
CREATE TEMPORARY TABLE tmp_table_result(
szResName VARCHAR (128) ,
szBlackResult VARCHAR (32) ,
szBrightnessResult VARCHAR (32) ,
szColorBiasResult VARCHAR (32) ,
szFreezeResult VARCHAR (32) ,
szFuzzyResult VARCHAR (32) ,
szNetState VARCHAR (32) ,
szNotdiag VARCHAR (32) ,
szDepId VARCHAR (32) ,
szDepName VARCHAR (32)
);
INSERT INTO tmp_table_result(
szResName,
szBlackResult,
szBrightnessResult,
szColorBiasResult,
szFreezeResult,
szFuzzyResult,
szNetState,
szNotdiag,
szDepId,
szDepName
)
SELECT
c.szResName,
IF(dr.iBlackResult IS NULL, '', IF(dr.iBlackResult = 0, '正常', '异常')) AS szBlackResult,
IF(dr.iBrightnessResult IS NULL, '', IF(dr.iBrightnessResult = 0, '正常', '异常')) AS szBrightnessResult,
IF(dr.iColorBiasResult IS NULL, '', IF(dr.iColorBiasResult = 0, '正常', '异常')) AS szColorBiasResult,
IF(dr.iFreezeResult IS NULL, '', IF(dr.iFreezeResult = 0, '正常', '异常')) AS szFreezeResult,
IF(dr.iFuzzyResult IS NULL, '', IF(dr.iFuzzyResult = 0, '正常', '异常')) AS szFuzzyResult,
IF(dr.iNetState IS NULL, '', IF(dr.iNetState = 0, '正常', '异常')) AS szNetState,
IF(dr.iBlackResult IS NULL AND
dr.iBrightnessResult IS NULL AND
dr.iColorBiasResult IS NULL AND
dr.iFreezeResult IS NULL AND
dr.iFuzzyResult IS NULL AND
dr.iNetState IS NULL, '未检测', '') AS szNotdiag,
dc.iId AS szDepId,
di.szDepName
FROM
tmp_table_res r
LEFT JOIN camerainfo c ON c.szResId = r.szResId
LEFT JOIN diagnosticresultinfo dr ON dr.szResId = r.szResId AND dr.iTaskRecordId = in_TaskRecordId
LEFT JOIN depcamerarelate dc ON dc.szResId = r.szResId
LEFT JOIN depinfo di ON di.ID = dc.iId WHERE dc.iId = in_DepId;
SELECT * FROM tmp_table_result;
DROP TABLE IF EXISTS tmp_table_count;
CREATE TEMPORARY TABLE tmp_table_count(
name VARCHAR (32) ,
value INTEGER (32)
);
INSERT INTO tmp_table_count(name, value) VALUES
('图像黑屏', (SELECT SUM(szBlackResult = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('图像亮度异常', (SELECT SUM(szBrightnessResult = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('图像偏色', (SELECT SUM(szColorBiasResult = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('图像冻结', (SELECT SUM(szFreezeResult = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('图像模糊', (SELECT SUM(szFuzzyResult = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('网络异常', (SELECT SUM(szNetState = '异常') FROM tmp_table_result));
INSERT INTO tmp_table_count(name, value) VALUES
('未检测', (SELECT SUM(szBlackResult = '') FROM tmp_table_result));
SELECT * FROM tmp_table_count;
END

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