当前位置: 首页 > 面试题库 >

MySQL的存储过程:输出参数

边健
2023-03-14
问题内容

我有一个来自此(google
book
)的mysql存储过程,一个例子是这样的:

DELIMITER $$

DROP PROCEDURE IF EXISTS my_sqrt$$
CREATE PROCEDURE my_sqrt(input_number INT, OUT out_number FLOAT)
BEGIN
    SET out_number=SQRT(input_number);
END$$

DELIMITER ;

程序编译正常。(我在ubuntu中使用MySQL查询浏览器)。

但是,当我调用该过程时:

CALL my_sqrt(4,@out_value);

(也在查询浏览器中)

它返回一个错误:

(1064) check the manual that correspond to the...

为什么这个例子不起作用?


问题答案:

无法复制。对我来说效果很好:

mysql> CALL my_sqrt(4, @out_value);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @out_value;
+------------+
| @out_value |
+------------+
| 2          | 
+------------+
1 row in set (0.00 sec)

也许您应该粘贴整个错误消息,而不是对其进行汇总。



 类似资料:
  • 输入/输出示例: infoData序列化输入:总长度5191 当,NVARCHAR(1000),infoData值:总长度-1003 帮助我获得完整的info_Data原样,没有任何丢失或截断。 提前道谢。

  • 本文向大家介绍Sql Server 存储过程调用存储过程接收输出参数返回值,包括了Sql Server 存储过程调用存储过程接收输出参数返回值的使用技巧和注意事项,需要的朋友参考一下 创建存储过程: 接收输出参数: 2,带返回值 创建存储过程: 接收返回值: 以上所述是小编给大家介绍的Sql Server 存储过程调用存储过程接收输出参数返回值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小

  • 问题内容: 我一直在寻找最后一个小时左右,却没有找到这个看似简单的问题的最终答案: 如何调用存储的MYSQL函数/过程并将其输出用于进一步的SELECT查询? 尽管这显然行不通,但这是我想要的东西: 其中test_proc()由以下方式定义: 举个例子。我也可以使用存储函数。 问题答案: 无法直接完成此操作,因为存储过程中无限制选择的输出是发送给客户端的结果集,但从技术上讲不是表。 解决方法是让p

  • 我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表,此时就需要使用多条 SQL 语句来针对这几个数据表完成处理要求。 存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL

  • 假设我已经在SAP HANA数据库中创建了存储过程,并且希望有可选的out参数和文本类型,比如错误详细信息。正如我所读到的,为了实现这一点,我应该使用一些默认值,因此我这样做: 不幸的是,构建失败,出现以下错误: OUT和IN-OUT参数可能没有默认表达式 所以,我决定尝试使用null,但以同样的方式失败。后来我将类型改为integer只是为了尝试,但它再次以完全相同的方式失败。 在同一时间这工作

  • mYSQL存储过程的错误: 存储过程如下: 报错:Procedure execution failed 1054 - Unknown column '王小李' in 'field list' 只要传值进去就报字段不在列表中,当我把 DataName 改成int 整型的时候运行可以,当为字符串运行就报错。请教高手要这么处理?