【问题标题】:Indicate a valid procedure call指示有效的过程调用
【发布时间】:2021-02-02 19:20:14
【问题描述】:

我有一个问题,希望能得到答案 好吧,我的问题是:指明正确的过程调用 我想知道答案:b 或 d,但我不知道这是否是一种好的“思维方式”

create procedure car2(out average float)
begin
select avg(cena) into average from car;
end //

a) 呼叫 car2(平均);

b) 呼叫 car2 (@total);

c) 调用 car2();

d) 两个答案都不正确

提前感谢您的回答,也许可以解释为什么这个答案而不是另一个答案

【问题讨论】:

  • 你可能会在 MySQL 手册中找到this page 启发。
  • 那么答案是什么?我已经读过了。当我在mysql中做这些call'e时,a和c的答案有错误,而b没有但没有显示。

标签: mysql sql procedure


【解决方案1】:

答案a) call car2 (average); 可能正确也可能不正确,取决于此语句的编写位置。例如,如果它是另一个 SP 中的一个语句,它具有使用正确数据类型定义的变量 average,那么这个语句是正确的。

b) call car2 (@total); 的答案总是正确的。

c) call car2 ();的答案不正确——MySQL不允许跳过参数,会产生参数数量与过程定义不匹配的错误信息。

所以d) Neither answer is correct的答案是不正确的。

【讨论】:

    【解决方案2】:

    正确答案是 (b)call car2 (@total);

    选项(a)不使用@符号来标识变量,选项(c)根本不提供变量。

    【讨论】:

    • 选项 (a) 不使用 @ 符号来标识变量 这可以是某些复合语句中的局部变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2020-11-03
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多