课本上是这么说的:基于Scott用户的雇员表和部门表,定义PL/SQL,使用替代变量输入部门名称,打印输出当前部门的员工的信息。
    对我来说是很难的,所以在此求助。
    是不是要定义一个变量。存很多个员工的数据。然后在输出。

解决方案 »

  1.   

    SELECT * FROM emp, dept
    WHERE emp.deptno = &deptno;这样的算不算 pl/sQL。
      

  2.   

    SELECT * FROM emp, dept
    WHERE emp.empno = dept.deptno;算
      

  3.   

    begin
    for c_emp in(SELECT e.* FROM emp e, dept d
    WHERE e.deptno =d.deptno and d.deptno=&deptno) loop
    dbms_output.put_line('员工ID:'||c_emp.empno|| ' 员工姓名:'|| c_emp.ename );
    end loop;
    emd;
      

  4.   


    这是什么方法,可不可以说一下。虽然最后的end写错了。但是还是对的。。谢谢了。。
      

  5.   

    1.plsql中处理集合,都是使用游标来进行处理。
    括号中的sql,可以看做plsql中的隐式游标。
      

  6.   

    一下是使用显示游标做法:create or replace procedure SPTEST(p_deptno in number) as
        cursor c_test is SELECT e.empno, e.ename FROM emp e, dept d WHERE e.deptno = d.deptno and d.deptno=p_deptno;
        v_id emp.empno%type;
        v_name emp.ename%type;
        v_resutl varchar2(1000);
    begin
        open c_test;
        fetch c_test into v_id, v_name;
        while c_type%found loop
            dbms_output.put_line('员工ID:' || v_id || ' 员工姓名:'|| v_name);
            fetch c_test into v_id, v_name;
        end loop;
        close c_tesgt;
    end SPTEST;
      

  7.   

    close c_tesgt;写错了close_c_test;