PL/SQL 语法

创建 VIEW
[quote]CREATE VIEW VIEW_A AS SELECT a.id, a.age
FROM a
UNION ALL
SELECT a_WSP.id, a_WSP.age
FORM a_WSP[/quote]

PL SQL的参数列表:
in:表示该参数不能被过程赋值(只能位于等号右边),只能由调用者在调用时输入值。
out:表示该参数只能被过程赋值(只能位于等号左边),调用者不用传递参数值。
in out:表示该类型既能被过程赋值也能被调用者传值。
默认情况下为in.

PL SQL 有四大内容。
1.Trigger
VIEW 不能删除内容,但是可以加Trigger,当它删除VIEW时候调用这个trigger,实现内部的删除。
[quote]create or replace TRIGGER trigger_del_viewa
instead of delete on VIEW_A
FOR EACH ROW
DECLARE
var1 tableA.id%TYPE;
resultset tableA%ROWTYPE;
var2 LONG;
countA NUMBER;
invalid_Exp EXCEPTION;
BEGIN
var1:=NULL;
resultset :=select......;
select count(*) into countA from tableA where tableA=resultset;
if countA=0 Then
raise invalid_Exp;
end if;
delete from tableA where tableA=resultset;
EXCEPTION
WHEN invalid_Exp then
Raise_application_error(-20003,'invalide_exp');
END trigger_del_viewa[/quote]

自然还可以触发在任何行为上。
[quote]create or replace trigger after_update_viewa AFTER INSERT OR UPDATE OR DELETE ON viewa
begin
proc_a('dd');--可以调用其它的procedure.
end; [/quote]
可以省略end 后面的名字。


2.Procedure 这里是删除一行数据
[quote]create or replace procedure proc_del_tableA(oid IN tableB.oid%TYPE)
AS
countA number(1);
var1 LONG;
invalid_Exp;
BEGIN
select count(*) into countA from tableA where tableA.oid =oid;
if countA=0 then
raise invalid_Exp;
end if;
delete from tableA where tableA.oid=oid;
EXCEPTION
when invalid_Exp then
raise_application_error(-200001,'invalid argument');
END;[/quote]

procedure的调用可以在pl/sql内部调用,也可以通过SQL>execute proc_del_tableA('oid123123');

3.function
[quote]create or replace function fn_get_oid(oid in tableA.oid%type) return number
as
l_ret number(1);
begin
l_ret:=0;
if oid is not nll then
l_ret:=1;
end if;
return l_ret;
end;[/quote]


4.package 主要是为了加快访问速度。
[quote]create or replace package packA as
procedure procA;
function fnB return varchar2;

end packA;[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值