Sql 通过匹配两个属性删除查询

Sql 通过匹配两个属性删除查询,sql,oracle,procedure,Sql,Oracle,Procedure,这是一个通过与两个属性值匹配来删除的过程,但它通过仅与R_ID匹配来删除值。在这里,与之后的值匹配不起作用。如何解决此问题???检查此操作是否有效: CREATE OR REPLACE PROCEDURE deleteProcFood(id IN food_item.R_ID%TYPE, item_name IN food_item.ITEM_NAME%TYPE)IS BEGIN DELETE FROM food_item WHERE food_item.R_ID = id AND foo

这是一个通过与两个属性值匹配来删除的过程,但它通过仅与R_ID匹配来删除值。在这里,与之后的值匹配不起作用。如何解决此问题???

检查此操作是否有效:

CREATE OR REPLACE 
PROCEDURE deleteProcFood(id IN food_item.R_ID%TYPE,
item_name IN food_item.ITEM_NAME%TYPE)IS
BEGIN

DELETE FROM food_item
WHERE food_item.R_ID = id  AND
food_item.ITEM_NAME = item_name;

COMMIT;

END;
/

我怀疑
ITEM\u NAME=ITEM\u NAME
是否总是返回true。因此,尝试更改参数变量名称。

最好始终使用别名,例如:

CREATE OR REPLACE 
PROCEDURE deleteProcFood(PIN_ID IN food_item.R_ID%TYPE,
PIN_item_name IN food_item.ITEM_NAME%TYPE)IS
BEGIN

DELETE FROM food_item
WHERE food_item.R_ID = PIN_ID   AND
food_item.ITEM_NAME = PIN_item_name;

COMMIT;

END;
/

是因为项目名称与项目名称相同吗?可以尝试将项目名称更改为PIN\u item\u name(项目名称中的过程)@posssesdhamid,然后您应该接受答案。@posssesdhamid:请勾选此答案旁边的灰色勾选框作为答案接受。
CREATE OR REPLACE 
PROCEDURE deleteProcFood(id IN food_item.R_ID%TYPE,
item_name IN food_item.ITEM_NAME%TYPE)IS
BEGIN

DELETE FROM food_item
WHERE food_item.R_ID = deleteProcFood.id  AND
food_item.ITEM_NAME = deleteProcFood.item_name;

COMMIT;

END;
/