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;