简短回答:存储过程本身通常不“返回”一个值(像函数那样),但可以通过多种方式把结果“传出去”。
下面按常见数据库分别说明:
示例:
CREATE PROCEDURE p1(OUT ret INT)
BEGIN
SET ret = 100;
END;
调用:
CALL p1(@r);
SELECT @r;
✅ MySQL 有 函数(FUNCTION) 才能 RETURN 值
RETURN 返回一个 整型状态值OUTPUT 参数示例:
CREATE PROCEDURE p1
@ret INT OUTPUT
AS
BEGIN
SET @ret = 10
END
或者:
CREATE PROCEDURE p2
AS
BEGIN
RETURN 0
END
⚠️ RETURN 只能返回 INT,且一般表示执行状态
RETURNCREATE PROCEDURE p1(ret OUT NUMBER) IS
BEGIN
ret := 5;
END;
PROCEDURE)用 CALL,不返回值FUNCTION)用 RETURNCREATE FUNCTION f1() RETURNS INT AS $$
BEGIN
RETURN 1;
END;
$$ LANGUAGE plpgsql;
| 数据库 | 存储过程返回值 | 推荐方式 |
|---|---|---|
| MySQL | ❌ | OUT 参数 / SELECT |
| SQL Server | ✅(INT) | OUTPUT 参数 |
| Oracle | ❌ | OUT 参数 |
| PostgreSQL | ❌ | 用 FUNCTION |
如果你能告诉我用的什么数据库 + 使用场景(状态 / 查询结果 / 计算结果),我可以直接给你最合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。