造成这个问题的原因是参数变量名称与Where条件字段名相同导致冲突
报错的代码 错误原因:因为我的参数sno 和搜索的字段名SNO 一样 (不能一样) CREATE OR REPLACE PROCEDURE "serchS" (sno IN VARCHAR2) AS v_name varchar2(20); v_age varchar2(20); BEGIN SELECT SNAME INTO v_name FROM S WHERE SNO = sno; DBMS_OUTPUT.PUT_LINE(v_name); END; /*--------------------------------------------------------------------------*/ 改正后的代码 CREATE OR REPLACE PROCEDURE "serchS" (sno2 IN VARCHAR2) //改变了变量名 AS v_name varchar2(20); v_age varchar2(20); BEGIN SELECT SNAME INTO v_name FROM S WHERE SNO = sno2; //改变了变量名 DBMS_OUTPUT.PUT_LINE(v_name); END; |