navicat for mysql创的存储过程没有返回值,调用了,查询的时候没有返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了navicat for mysql创的存储过程没有返回值,调用了,查询的时候没有返回值相关的知识,希望对你有一定的参考价值。

delimiter $$
CREATE PROCEDURE TEST(OUTnumber1 INTEGER)
BEGIN
DECLARE number2 INTEGER;
SET number2=(SELECT COUNT(*)FROM student);
SET number1=number2;
END $$
delimiter
调用:call test(@number)
查询:select @number

参考技术A 朋友,首先这句话不能这样写,正确的方式:
SET number2=(SELECT COUNT(*)FROM student);
其次,CREATE PROCEDURE TEST(OUTnumber1 INTEGER) 中OUTnumber1中间没空格隔开
最后call test(@number),括号问题,中文情况下输入。可能是文本复制后的原因吧

正确的存储过程已写好,测试过:
drop PROCEDURE IF EXISTS TEST;
delimiter &&
CREATE PROCEDURE TEST(OUT number1 INTEGER)
BEGIN
DECLARE number2 INTEGER;
SELECT COUNT(*) into number2 FROM student;
set number1 = number2;
END &&
delimiter ;
call test(@number);
select @number;

希望对你有帮助本回答被提问者采纳

navicat for mysql 下测试储存过程

写好的一个存储过程TS_Pro_AddMyBrowse 有返回参数

begin
declare d_row int default 0;
start TRANSACTION;
    insert into ts_mybrowse(UserID,ArticleID,FromUserID,ArticleTitle,BrowsingTime)
    values(UserID,ArticleID,FromUserID,ArticleTitle,BrowsingTime);
    select ROW_COUNT() into d_row;
    if(d_row>0) then
        set ReturnValuex=1;
        commit;
    else
        set ReturnValuex=-1;
        rollback;
    end if;
end

新建查询:

CALL TS_Pro_AddMyBrowse(@1,1000017,883,113505,趣味物理大全,2016-02-17 11:41:42)

[SQL] CALL TS_Pro_AddMyBrowse(@1,‘1000017‘,‘883‘,‘113505‘,‘趣味物理大全‘,‘2016-02-17 11:41:42‘)

受影响的行: 0
时间: 0.155s

技术分享


以上是关于navicat for mysql创的存储过程没有返回值,调用了,查询的时候没有返回值的主要内容,如果未能解决你的问题,请参考以下文章

navicat for MySQL中的 查询编辑器中如何执行存储过程?

MySQL存储过程和自定义函数Navicat for mysql创建存储过程和函数调用存储过程和函数的区别

图解使用Navicat for MySQL创建存储过程

Navicat for MySQL循环添加大量数据用啥

navicat for mysql 下测试储存过程

mysql使用navicat编写调用存储过程