第三階段
q.使用ref游標顯示「emp」表中的值。
a.declare
type emprectyp is record
(empnoemp.empno%type,
enameemp.ename%type,
jobemp.job%type,
mgremp.mgr%type,
hiredate emp.hiredate%type,
salemp.sal%type,
commemp.comm%type,
deptnoemp.deptno%type
);type emp_cursor is ref cursor return emp%rowtype;
vemp_cur emp_cursor;
vemp_rec emprectyp;
begin
open vemp_cur for select * from emp;
loop
fetch vemp_cur into vemp_rec;
exit when vemp_cur%notfound;
dbms_output.put(vemp_rec.empno||''||vemp_rec.ename||' '||vemp_rec.job);
dbms_output.put(vemp_rec.mgr||''||vemp_rec.hiredate||' '||vemp_rec.sal);
dbms_output.put_line(vemp_rec.comm||''||vemp_rec.deptno);
end loop;
close vemp_cur;
end;
/q.從「emp」中獲得值送到pl/sql
表,將pl/sql
表中的薪水值增加500,並向使用者顯示增加的薪水及其他詳細資訊。
a.declare
type emprec is record
(empnoemp.empno%type,
enameemp.ename%type,
jobemp.job%type,
mgremp.mgr%type,
hiredate emp.hiredate%type,
salemp.sal%type,
commemp.comm%type,
deptnoemp.deptno%type
);i binary_integer:=1;
type emp_tab is table of emprec index by binary_integer;
vemp emp_tab;
cursor c1 is select * from emp;
begin
for x in c1
loop
vemp(i).empno:=x.empno;
vemp(i).ename:=x.ename;
vemp(i).job:=x.job;
vemp(i).mgr:=x.mgr;
vemp(i).hiredate:=x.hiredate;
vemp(i).sal:=x.sal+500;
vemp(i).comm:=x.comm;
vemp(i).deptno:=x.deptno;
i:=i+1;
end loop;
for j in 1..i-1
loop
dbms_output.put(vemp(j).empno||''||vemp(j).ename||' '||vemp(j).job);
dbms_output.put(vemp(j).mgr||''||vemp(j).hiredate||' '||vemp(j).sal);
dbms_output.put_line(vemp(j).comm||''||vemp(j).deptno);
end loop;
end;
/q.一旦將值送到pl/sql
表後,嘗試在pl/sql
表中插入新記錄並且刪除某些現有的記錄。
a.declare
type emprec is record
(empnoemp.empno%type,
enameemp.ename%type,
jobemp.job%type,
mgremp.mgr%type,
hiredate emp.hiredate%type,
salemp.sal%type,
commemp.comm%type,
deptnoemp.deptno%type
);i binary_integer:=1;
type emp_tab is table of emprec index by binary_integer;
vemp emp_tab;
cursor c1 is select * from emp;
begin
for x in c1
loop
vemp(i).empno:=x.empno;
vemp(i).ename:=x.ename;
vemp(i).job:=x.job;
vemp(i).mgr:=x.mgr;
vemp(i).hiredate:=x.hiredate;
vemp(i).sal:=x.sal;
vemp(i).comm:=x.comm;
vemp(i).deptno:=x.deptno;
i:=i+1;
end loop;
--for j in 1..i-1
--loop
--dbms_output.put(vemp(j).empno||''||vemp(j).ename||' '||vemp(j).job);
--dbms_output.put(vemp(j).mgr||''||vemp(j).hiredate||' '||vemp(j).sal);
--dbms_output.put_line(vemp(j).comm||''||vemp(j).deptno);
--end loop;
--插入記錄
dbms_output.put_line('插入記錄:');
vemp(i).empno:=1000;
vemp(i).ename:='goldens';
vemp(i).job:='software';
vemp(i).mgr:=null;
vemp(i).hiredate:='2003-01-04';
vemp(i).sal:=8888;
vemp(i).comm:=10;
vemp(i).deptno:=10;
for j in 1..i
loop
dbms_output.put(vemp(j).empno||''||vemp(j).ename||' '||vemp(j).job);
dbms_output.put(vemp(j).mgr||''||vemp(j).hiredate||' '||vemp(j).sal);
dbms_output.put_line(vemp(j).comm||''||vemp(j).deptno);
end loop;
--刪除第5、6條記錄
dbms_output.put_line('刪除第5、6條記錄:');
for j in 5..i-2
loop
vemp(j).empno:=vemp(j+2).empno;
vemp(j).ename:=vemp(j+2).ename;
vemp(j).job:=vemp(j+2).job;
vemp(j).mgr:=vemp(j+2).mgr;
vemp(j).hiredate:=vemp(j+1).hiredate;
vemp(j).sal:=vemp(j+2).sal;
vemp(j).comm:=vemp(j+2).comm;
vemp(j).deptno:=vemp(j+2).deptno;
end loop;
vemp(i-1).empno:=null;
vemp(i-1).ename:=null;
vemp(i-1).job:=null;
vemp(i-1).mgr:=null;
vemp(i-1).hiredate:=null;
vemp(i-1).sal:=null;
vemp(i-1).comm:=null;
vemp(i-1).deptno:=null;
vemp(i).empno:=null;
vemp(i).ename:=null;
vemp(i).job:=null;
vemp(i).mgr:=null;
vemp(i).hiredate:=null;
vemp(i).sal:=null;
vemp(i).comm:=null;
vemp(i).deptno:=null;
for j in 1..i-2
loop
dbms_output.put(vemp(j).empno||''||vemp(j).ename||' '||vemp(j).job);
dbms_output.put(vemp(j).mgr||''||vemp(j).hiredate||' '||vemp(j).sal);
dbms_output.put_line(vemp(j).comm||''||vemp(j).deptno);
end loop;
end;
/
幾十個實用的PL SQL 5
第五階段 q.編寫乙個資料報,它有兩個函式和兩個過程以操作 emp 表。該資料報要執行的任務為 插入乙個新雇員 刪除乙個現有雇員 顯示指定雇員的整體薪水 薪水 佣金 顯示指定雇員所在部門名稱。a.createorre placepackageemppackas procedureinsrec pem...
如何讓幾十個報表濃縮於乙個報表
軟體系統如何如何,老闆最後來看的是報表。要想看不同的統計指標,就需要看不同的報表,這是通常的做法,於是乎幾十個。幾百個報表,軟體公司得投入多少的人力物力用於報表開發,有人說不是有報表開發平台嗎?哎,有了它,你就不用做報表模板了嗎?還得做。舉個例子 銷售類報表,一般地可能有幾十個吧,能不能把這幾十個報...
市場貢獻超千億,單身人口養活了幾十個行業
七夕又到了,不知單身的你能否脫單?在七夕背後,是中國單身的成年人口早已超2億。據民政部的資料顯示 2018年中國單身成年人口已經超過2億,獨居成年人口超過7700萬。參與調研的職場人中,68.33 處於單身狀態。其中,海口的單身率最高,87.5 職場人是單身 福州以單身率75.93 穩坐第三位 廈門...