我定义返回的是int 但是报错
错误代码: 1415
Not allowed to return a result set from a function
代码如下:在线等 急
DELIMITER $$
/*DROP FUNCTION IF EXISTS `getsubcodestepnum`$$*/
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
FUNCTION `sd35822_sample`.`getsubcodestepnum`(subcode VARCHAR(255))
RETURNS INT(11)
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
DECLARE step1 INT;
DECLARE step2 INT;
DECLARE step3 INT;
DECLARE step4 INT;
DECLARE step5 INT;
DECLARE step6 INT;
DECLARE step7 INT;
DECLARE step8 INT;
DECLARE step9 INT;
DECLARE step10 INT;
DECLARE acc_step0 INT;
DECLARE acc_step1 INT;
DECLARE acc_step2 INT;
DECLARE acc_step3 INT;
DECLARE acc_step4 INT;
DECLARE acc_step5 INT;
DECLARE acc_step6 INT;
DECLARE acc_step7 INT;
DECLARE acc_step8 INT;
DECLARE acc_step9 INT;
DECLARE num INT(11) DEFAULT 0;
SELECT acc_step0 = IFNULL(step0,0),
acc_step1 = IFNULL(step1,0),
acc_step2 = IFNULL(step2,0),
acc_step3 = IFNULL(step3,0),
acc_step4 = IFNULL(step4,0),
acc_step5 = IFNULL(step5,0),
acc_step6 = IFNULL(step6,0),
acc_step7 = IFNULL(step7,0),
acc_step8 = IFNULL(step8,0),
acc_step9 = IFNULL(step9,0)
FROM accinfo; SET step1 = acc_step0;
SET step2 = step1 + acc_step1;
SET step3 = step2 + acc_step2;
SET step4 = step3 + acc_step3;
SET step5 = step4 + acc_step4;
SET step6 = step5 + acc_step5;
SET step7 = step6 + acc_step6;
SET step8 = step7 + acc_step7;
SET step9 = step8 + acc_step8;
SET step10 = step9 + acc_step9; IF (LENGTH(subcode) = step1) THEN
SET num=1;
ELSEIF (LENGTH(subcode) = step2) THEN
SET num=2;
ELSEIF (LENGTH(subcode) = step3) THEN
SET num=3;
ELSEIF (LENGTH(subcode) = step4) THEN
SET num=4;
ELSEIF (LENGTH(subcode) = step5) THEN
SET num=5;
ELSEIF (LENGTH(subcode) = step6) THEN
SET num=6;
ELSEIF (LENGTH(subcode) = step7) THEN
SET num=7;
ELSEIF (LENGTH(subcode) = step8) THEN
SET num=8;
ELSEIF (LENGTH(subcode) = step9) THEN
SET num=9;
ELSEIF (LENGTH(subcode) = step10) THEN
SET num=10;
END IF;
RETURN num;
END$$DELIMITER ;
错误代码: 1415
Not allowed to return a result set from a function
代码如下:在线等 急
DELIMITER $$
/*DROP FUNCTION IF EXISTS `getsubcodestepnum`$$*/
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
FUNCTION `sd35822_sample`.`getsubcodestepnum`(subcode VARCHAR(255))
RETURNS INT(11)
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
DECLARE step1 INT;
DECLARE step2 INT;
DECLARE step3 INT;
DECLARE step4 INT;
DECLARE step5 INT;
DECLARE step6 INT;
DECLARE step7 INT;
DECLARE step8 INT;
DECLARE step9 INT;
DECLARE step10 INT;
DECLARE acc_step0 INT;
DECLARE acc_step1 INT;
DECLARE acc_step2 INT;
DECLARE acc_step3 INT;
DECLARE acc_step4 INT;
DECLARE acc_step5 INT;
DECLARE acc_step6 INT;
DECLARE acc_step7 INT;
DECLARE acc_step8 INT;
DECLARE acc_step9 INT;
DECLARE num INT(11) DEFAULT 0;
SELECT acc_step0 = IFNULL(step0,0),
acc_step1 = IFNULL(step1,0),
acc_step2 = IFNULL(step2,0),
acc_step3 = IFNULL(step3,0),
acc_step4 = IFNULL(step4,0),
acc_step5 = IFNULL(step5,0),
acc_step6 = IFNULL(step6,0),
acc_step7 = IFNULL(step7,0),
acc_step8 = IFNULL(step8,0),
acc_step9 = IFNULL(step9,0)
FROM accinfo; SET step1 = acc_step0;
SET step2 = step1 + acc_step1;
SET step3 = step2 + acc_step2;
SET step4 = step3 + acc_step3;
SET step5 = step4 + acc_step4;
SET step6 = step5 + acc_step5;
SET step7 = step6 + acc_step6;
SET step8 = step7 + acc_step7;
SET step9 = step8 + acc_step8;
SET step10 = step9 + acc_step9; IF (LENGTH(subcode) = step1) THEN
SET num=1;
ELSEIF (LENGTH(subcode) = step2) THEN
SET num=2;
ELSEIF (LENGTH(subcode) = step3) THEN
SET num=3;
ELSEIF (LENGTH(subcode) = step4) THEN
SET num=4;
ELSEIF (LENGTH(subcode) = step5) THEN
SET num=5;
ELSEIF (LENGTH(subcode) = step6) THEN
SET num=6;
ELSEIF (LENGTH(subcode) = step7) THEN
SET num=7;
ELSEIF (LENGTH(subcode) = step8) THEN
SET num=8;
ELSEIF (LENGTH(subcode) = step9) THEN
SET num=9;
ELSEIF (LENGTH(subcode) = step10) THEN
SET num=10;
END IF;
RETURN num;
END$$DELIMITER ;
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/这个,reads sql data 这个加在后面试试