Oracle存储过程

--存储过程的优点
1、简化复杂的操作。
2、增加数据的独立性。
3、提高安全性。
4、提高性能。
--存储过程的语法
create [or replace ] procedure proc_name
(parameter_name [in datatype {:=default} ] | [out | in out] [nocopy] datatype)
{[is | as ]}
声明变量列表...
Begin
  --Body函数体
end;

parameter_name :参数名。
in | OUt |IN out datatype {:=default} :in 是输入参数;out 输出参数;in out 输入输出参数;:=default 给参数赋默认值。


--查看 serveroutput设置是否有效。也就是dbms_output.put_line是否可以成功输出。
show serveroutput;
--结果如下,表示serveroutput没有打开
serveroutput off
--打开语句
set serveroutput on
显示:serveroutput on size unlimited format word_wrapped 说明设置成功。

--查看创建的存储过程是否有错误的语句
show errors procedure proc_name;


--无参存储过程
create or replace procedure proc_test
as
v_id number(8,2);
begin
  select * from table_name where id=v_id;
  end;

--执行存储过程的方法
方法一:
begin
 proc_test; 
end;

方法二:
exec proc_test;

--在存储过程中动态执行DDL语句
execute immediate [执行语句]execute immediate :关键字用于在存储过程中执行DDL语句和DML语句。

--实例
execute immediate 'create table tab_test (id int,name nvarchar2(20))';


--有参存储过程实例
create or replace procedure proc_Test1
(v_id in number(10,2),v_name out nvarchar2(20))
as
begin
  select name into v_name from table_name where id=v_id;
end;

--执行有参存储
declare
v_name nvarchar2(10);
begin
  proc_Test1(1,v_name);
  --v_name是返回的信息
end ;

--删除存储过程
drop procedure proc_name;

--触发器的执行顺序
1、首先触发语句级触发器。
2、执行前行级触发器。
3、后行级触发器。
4、后语句级触发器。

 

posted on 2017-03-15 20:20  拿着菜刀  阅读(157)  评论(0)    收藏  举报

导航