我正在使用Aqua Data Studio20.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')。我可以在另一个窗口(resulting stored procedure in 'Alter' window)中查看和修改这个创建的存储过程。这是否意味着存储过程的创建实际上是成功的,或者我所做的事情有什么问题?
发布于 2021-04-16 00:47:59
看起来你的程序已经创建好了。但是,查询中的LIMIT 20没有意义。您将在OUT参数中返回选定的ObjectID,该参数只能包含一个值。然而,您将查询限制为20行。
如果希望返回最多20行,请将这些行作为结果集返回(省略out参数和INTO objid),或者将这些行限制为只有一行。
https://stackoverflow.com/questions/67111631
复制相似问题