以下是一个从表中计算男性计数的简单存储过程,我在proc中声明了一个变量total_count,其中我存储了我的结果。
DELIMITER //
CREATE PROCEDURE GetMaleCount()
BEGIN
DECLARE total_count INT DEFAULT 0 ;
SELECT COUNT(STUDENT_ID) INTO total_count
FROM [table1]
where STUDENT_GENDER = 'M' ;
END //
DELIMITER ;
call GetMaleCount();
select @total_count as tc;
当我执行此程序时,我得到NULL作为答案,但是当我单独执行内部sql查询时,我得到了正确的答案1852.我是否以错误的方式声明了变量?
答案 0 :(得分:0)
total_count
仅在程序中可见。这就是为什么NULL
在它之外。定义过程时需要使用OUT
参数:
DELIMITER //
CREATE PROCEDURE GetMaleCount(OUT total_count INT)
BEGIN
SELECT COUNT(STUDENT_ID) INTO total_count
FROM [table1]
where STUDENT_GENDER = 'M' ;
END //
DELIMITER ;
call GetMaleCount(@total_count);
select @total_count as tc;
答案 1 :(得分:0)
您需要使用OUT参数。
angular.module('app')
.config(['$logProvider','$provide',
function($logProvider,$provide) {
if(isProduction){ //flag to check production here
$logProvider.debugEnabled(false);
$provide.decorator('$log', ['$delegate', function($delegate) {
$delegate.warn = angular.noop;
return $delegate;
}]);
}
}
])