oracle 一道小题

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:35:29
编辑程序块,要求输入员工编号时,显示编号所对应的员工信息。
(scott/tiger 下的emp表)
小第刚学oracle 实在弄不懂游标 尤其是提取那里!

SQL> SET SERVEROUT ON
SQL> DECLARE
2 V_EMPNO NUMBER;
3 V_EMP EMP%ROWTYPE;
4 CURSOR C_EMP IS SELECT * FROM EMP;
5 BEGIN
6 V_EMPNO := &&EMPNO;
7 OPEN C_EMP;
8 LOOP
9 FETCH C_EMP INTO V_EMP;
10 EXIT WHEN C_EMP%NOTFOUND;
11 IF V_EMPNO = V_EMP.EMPNO THEN
12 DBMS_OUTPUT.PUT_LINE(V_EMP.ename);
13 END IF;
14 END LOOP;
15 CLOSE c_emp;
16 END;
17 /
old 6: V_EMPNO := &&EMPNO;
new 6: V_EMPNO := 7499;
ALLEN

PL/SQL procedure successfully completed.

其实这个功能不用游标也可以

SQL> DECLARE
2 V_EMPNAME VARCHAR2(10);
3 BEGIN
4 SELECT ENAME INTO V_EMPNAME FROM EMP WHERE EMPNO=&EMPNO;
5 DBMS_OUTPUT.PUT_LINE(V_EMPNAME);
6 END;
7 /
Enter value for empno: 7499
old 4: SELECT ENAME INTO V_EMPNAME FROM EMP WHERE EMPNO=&EMPNO;