请帮助,我尝试使用oracle过程作为参数变量然后在SELECT INTO中使用它,问题是过程不将此变量视为一个值。 这是一个简单的代码,解释了我的意思。 ps:id_res是主键。
CREATE OR REPLACE PROCEDURE annuler_res(id_res in number)
AS
BEGIN
UPDATE reservation SET etat_res='annulé' WHERE reservation.id_res= id_res;
END;
BEGIN
annuler_res(1);
END;
答案 0 :(得分:2)
更改变量的名称,Oracle将 id_res 视为表格列,以便您的查询类似于 WHERE 1 = 1
答案 1 :(得分:-1)
在调用SQL时,总是使用别名。
CREATE OR REPLACE PROCEDURE annuler_res(id_res in number)
AS
BEGIN
UPDATE reservation SET etat_res='annulé' WHERE reservation.id_res= annuler_res.id_res;
END;
如果您始终使用别名,则永远不会遇到PL / SQL变量名称与表列名称冲突的问题。