日期:2014-05-17  浏览次数:21311 次

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

------解决方案--------------------
SQL code
SELECT * FROM emp, dept
WHERE emp.empno = dept.deptno;

------解决方案--------------------
SQL code
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;

------解决方案--------------------
1.plsql中处理集合,都是使用游标来进行处理。
括号中的sql,可以看做plsql中的隐式游标。
------解决方案--------------------
一下是使用显示游标做法:

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;
------解决方案--------------------
close c_tesgt;

写错了

close_c_test;