日期:2014-05-17 浏览次数:20880 次
CREATE OR REPLACE PROCEDURE find_emp2(emp_no NUMBER) AS BEGIN SELECT * FROM EMP WHERE empno = emp_no; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('雇员编号未找到'); END find_emp2;
CREATE OR REPLACE PROCEDURE find_emp2(emp_no NUMBER) a number; AS BEGIN SELECT empno into a FROM EMP WHERE empno = emp_no and rownum = 1;---这里可能会有找到多条记录的情况,也会导致错误所以加个rownum取第一个 EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('雇员编号未找到'); END find_emp2;
------解决方案--------------------
单独的select要用select into的形式
如果是想返回一个结果集,那么最好把结果集放到标签里
CURSOR C_CUR IS SELECT * FROM EMP WHERE empno = emp_no;