out 変数を使用しなかった場合、ストアド プロシージャは正しく機能しましたが、out 変数を使用せずにストアド プロシージャを実行すると、次のエラーが表示されます。
MySQL は次のように述べています: #1327 - 宣言されていない変数: sp_result
コード:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test3`(OUT `sp_result` INT(11), IN `sp_where_param` VARCHAR(100), IN `sp_where_value` VARCHAR(100), IN `sp_table_name` VARCHAR(100))
NO SQL
BEGIN
DECLARE tbl_id VARCHAR(100);
SET tbl_id = CONCAT(sp_table_name,'_id');
SET @temp1=CONCAT('SELECT count(',tbl_id,') INTO sp_result FROM ',sp_table_name,' WHERE ',sp_where_param,' = \'',sp_where_value,'\'');
PREPARE stmt1 FROM @temp1;
EXECUTE stmt1;
END
多分 out 変数なしでは動作しません:(