幾十個實用的PL SQL 3

2021-04-17 07:45:14 字數 4770 閱讀 7242

第三階段

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 穩坐第三位 廈門...