我有一个类似于以下存储过程的程序,当我尝试保存它时,会出现以下错误:
未声明的变量: my_column
CREATE PROCEDURE p (OUT column_param VARCHAR(25))
BEGIN
SELECT my_column INTO coumn_param limit 1;
END;
为什么我不能选择要返回的列?
这是我的存储过程中实际查询语句:
select latitude into lat, longitude into lon
from cities cc
inner join countries c on cc.country_id = c.country_id
inner join regions r on cc.region_id = r.region_id and c.country_id = r.country_id
left join locations l on cc.city_id = l.city_id
where
city = coalesce(cty, city) and
country = coalesce(ctry, country) and
region = coalesce(reg, region)
limit 1;
PREPARE ... FROM ...
和EXECUTE ... USING
,那么是的,你可以这样做,但需要使用用户/会话变量(例如@lat
),而不是没有@
的本地变量。 - petermSELECT latitude, longitude INTO @lat, @lon ....
然后这个(作为普通语句):select @lat, @lon into lat, lon;
- Get Off My Lawn