pl/sql程式設計基礎

sky850623發表於2013-06-02
1.儲存一行一列
 declare
 v_sum number(4);
 begin
 select count(*) into v_sum from emp;  --結果返回一個值,只需使用一個變數
 dbms_output.put_line(v_sum);
 end;
 /
2.儲存一行多列
a. 使用多個變數儲存一行
declare
v_sal number(5);
v_ename varchar(20);
begin
select ename,sal into v_ename,v_sal from emp where empno=7369; --限定返回一行
dbms_output.put_line(v_ename||','||v_sal);
end;
b.使用%rowtype
declare
r_emp emp%rowtype;
begin
select * into r_emp from emp where empno=7369;
dbms_output.put_line(r_emp.ename);
dbms_output.put_line(r_emp.sal);
end;
 
c.記錄型別
declare
type r is record(
sal number(5),
ename varchar(10)
);
emp_record r;
begin
select sal,ename into emp_record from emp where empno=7369;
dbms_output.put_line(emp_record.sal);
dbms_output.put_line(emp_record.ename);
end;
 
3.儲存多行
  使用遊標
3.1隱式遊標
3.2顯示遊標
  步聚:宣告遊標--&gt開啟遊標--&gt檢索資料--&gt關閉遊標
a.使用帶引數遊標,把部門號是10的所有員工資訊列印出來
declare
cursor cursor_emp(v_deptno in number:=20)
is select * from emp
where deptno=v_deptno;
emp_record emp%rowtype;
begin
open cursor_emp(10);
loop
fetch cursor_emp into emp_record;
exit when cursor_emp%notfound;
dbms_output.put(emp_record.ename||',');
dbms_output.put_line(emp_record.sal);
end loop;
close cursor_emp;
end;
b.遊標for迴圈
使用for迴圈依次讀取結果集中的行資料
 declare
 cursor cursor_emp is
 select * from emp where deptno=10;
 begin
 for r in cursor_emp loop
 dbms_output.put_line(r.ename);
 dbms_output.put_line(r.sal);
 end loop;
 end;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26937943/viewspace-762748/,如需轉載,請註明出處,否則將追究法律責任。

相關文章