创建 MySQL 存储过程
Creating MySQL Stored Procedure
我正在使用 Aqua Data Studio 20.6 创建一个 MySQL 存储过程。以下是我的程序,我把它命名为sp_GetObjIDByProType
:
( IN prono char(15), IN imgtype char(8), OUT objid bigint )
BEGIN
SELECT ObjectID INTO objid FROM images WHERE ProNumber = prono AND DocType = imgtype LIMIT 20;
END
当我尝试创建存储过程时,收到此错误消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN imgtype char(8) )
( OUT objid bigint )
BEGIN
SELECT ObjectID INTO objid F' at line 3
但是,看起来创建任务实际上是成功的
(sp_GetObjIDByProType appears under 'Procedures'). I can view and alter this created stored procedure in another window (resulting stored procedure in 'Alter' window)。这是否意味着存储过程的创建实际上是成功的,还是我做的有问题?
看起来您的程序已创建。但是,查询中的 LIMIT 20
没有意义。您正在 returning 在 OUT
参数中选择的 ObjectID
,它只能包含一个值。但是您将查询限制为 20 行。
如果您想 return 最多 20 行,return 行作为结果集(省略 out 参数和 INTO objid
),或者将行限制为仅一排。
我正在使用 Aqua Data Studio 20.6 创建一个 MySQL 存储过程。以下是我的程序,我把它命名为sp_GetObjIDByProType
:
( IN prono char(15), IN imgtype char(8), OUT objid bigint )
BEGIN
SELECT ObjectID INTO objid FROM images WHERE ProNumber = prono AND DocType = imgtype LIMIT 20;
END
当我尝试创建存储过程时,收到此错误消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN imgtype char(8) )
( OUT objid bigint )
BEGIN
SELECT ObjectID INTO objid F' at line 3
但是,看起来创建任务实际上是成功的 (sp_GetObjIDByProType appears under 'Procedures'). I can view and alter this created stored procedure in another window (resulting stored procedure in 'Alter' window)。这是否意味着存储过程的创建实际上是成功的,还是我做的有问题?
看起来您的程序已创建。但是,查询中的 LIMIT 20
没有意义。您正在 returning 在 OUT
参数中选择的 ObjectID
,它只能包含一个值。但是您将查询限制为 20 行。
如果您想 return 最多 20 行,return 行作为结果集(省略 out 参数和 INTO objid
),或者将行限制为仅一排。