1、生成語句
create [or replace] procedure <過程名>
(
<參數1> [方式1] <數據類型1>,
<參數2> [方式2] <數據類型2>
)
is|as
PS/SQL過程體;
2、
into:賦值
is|as 此處無區別
參數: in傳入, out輸出
3、
%TYPE: %TYPE用來聲明一個變量和指定表的column一樣的數據類型
%ROWTYPE: %ROWTYPE用來聲明一個和表中記錄一樣的record.
4、pl/sql三種循環
set serveroutput on;
declare
i number;
begin
--正序循環
for i in 1..5 loop
DBMS_OUTPUT.PUT_LINE('正序for:i='||i);
end loop;
--倒序循環
for i in reverse 1..5 loop
DBMS_OUTPUT.PUT_LINE('倒序for:i='||i);
end loop;
--while循環
i:=0;
while i<5 loop
i:=i+1;
DBMS_OUTPUT.PUT_LINE('while:i='||i);
end loop;
--loop循環
i:=0;
loop
DBMS_OUTPUT.PUT_LINE('loop:i='||i);
i:=i+1;
exit when (i>=5);
end loop;
end;
5. case...when
1)case 變量
when 'a' then
when 'b' then
else
end case
2)case
when 條件1 then
when 條件2 then
else
end case6、record用法
SET SERVEROUTPUT ON;
DECLARE
TYPE type_record IS RECORD
(
name1 VARCHAR (20):= 'world',
age NUMBER:= 20
);
v_type_record type_record;
BEGIN
v_type_record.name1 := 'hello';
v_type_record.age := 15;
DBMS_OUTPUT.put_line (v_type_record.name1 || ' ' || v_type_record.age);
END;
7、exception異常
set serveroutput on;
declare
v_school B_W_XXWH%rowtype;
begin
DBMS_OUTPUT.PUT_LINE(1/0);
EXCEPTION
WHEN no_data_found then
DBMS_OUTPUT.PUT_LINE('沒有數據'||sqlerrm || sqlcode);
when others then
begin
DBMS_OUTPUT.PUT_LINE('未知錯誤');
end;
end;