【发布时间】:2021-07-23 00:42:27
【问题描述】:
我是一个初学者,试图创建一个返回隔离中心单元中可用床位数量的程序。
- UID 是指单元 ID(4 个字符),
- CID 指的是中心 ID(6 个字符)。
create procedure getAvailableBeds(@UID varchar(4), @CID varchar(6), @emptyBeds int output)
as
begin
declare @bedNum int, @patientNum int
select @bedNum = NoOfBeds, @patientNum = NoOfPatients
from Unit
where @UID = UID and @CID = CID
@emptyBeds = @bedNum – @patientNum
End
错误;
#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 '@UID varchar(4)、@CID varchar(6)、@emptyBeds int 输出附近使用的正确语法) 作为 开始 在第 1 行声明...'
我似乎无法找出我的代码中的错误,我需要一些帮助。
【问题讨论】:
-
@emptyBeds = @bedNum – patientNum缺少@for patientNum -
感谢@Stu,但它仍然与错误消息不对应。
-
不需要
set @emptyBeds = ...吗? AFAICT,不推荐使用没有set的变量,并且不需要工作,并且在没有set的情况下,您想要这样可能是模棱两可的。分号也有帮助... -
是的,这也是@underscore_d。看起来这里和那里有一些小的语法错误:)。但是,我仍然坚持消息中显示的错误,第 1 行。我似乎无法弄清楚。
-
@name是用户定义的变量。它不能用作过程参数。
标签: mysql phpmyadmin mariadb