plsql開發語言基礎

531968912發表於2016-06-30
plsql 匿名塊:
 set serveroutput on;
begin
for i in 1..10 loop
dbms_output.put_line('zhanggaoang');
end loop;
end;


for 迴圈 插入資料
begin
for i in 1..100 loop
insert into zag values('x',i);
end loop;
end;
/
 commit;


declare匿名塊:
 

declare
    x varchar2(40):='my first pl/sql';
  begin
  dbms_output.put_line(x);
 end;
 /

cursor --遊標



declare
x t.id%type;
cursor c is select * from zag;
begin
open c;
loop
fetch c into x;
exit when c%notfound;
dbms_output.put_line('id is '||x);
end loop;
close c;
end;
 

儲存過程:

語法:



CREATE [OR REPLACE] PROCEDURE Procedure_name
   [ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
   { IS | AS }
   <型別.變數的說明>
BEGIN
   <執行部分>
EXCEPTION
   <可選的異常錯誤處理程式>
END;


儲存過程例子:
刪除指定員工記錄
CREATE OR REPLACE PROCEDURE DelEmp(v_empno IN emp.empno%TYPE) AS
   No_result EXCEPTION;
BEGIN
DELETE FROM emp WHERE empno=v_empno;
IF SQL%NOTFOUND THEN
RAISE no_result;
END IF;
DBMS_OUTPUT.PUT_LINE('編碼為'||v_empno||'的員工已被除名!');


函式
???? 函式要返回一個結果。
???? 函式可以在SQL語句中呼叫。
CREATE [OR REPLACE] FUNCTION function_name
   [(argment [ { IN| IN OUT }] type,
argment [ { IN | OUT | IN OUT } ] type]
   RETURN return_type
   { IS | AS }
   <型別.變數的說明>
BEGIN
   FUNCTION_body
EXCEPTION
   其它語句
END;

EXCEPTION
WHEN no_result THEN
DBMS_OUTPUT.PUT_LINE('你需要的資料不存在!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('發生其它錯誤!');
END DelEmp;

一個簡單的函式--加法

SQL> ed
已寫入 file afiedt.buf
1 create or replace function mysum(a in number,b in number)
2 return number is
3 v_sum number;
4 begin
5 v_sum:=a+b;
6 return v_sum;
7* end mysum;
SQL> /
函式已建立。
SQL> select mysum(1,2) from dual;
MYSUM(1,2)
----------
3






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

相關文章