对于存储过程已经有过一周的学习时间了,但是之学到一些皮毛,争取根据基础,熟练后能进行深入。

--1、存储过程创建存储过程的语法:
CREATE [
OR
REPLACE ]
PROCEDURE procedure_name [
(
parameter_list
) ] {IS | AS} [ local_declarations ]
BEGIN
executable_statements [
EXCEPTION
exception_handlers ]
END [ procedure_name ];
--其中:procedure_name是过程的名称。 parameter_list是参数列表。 local_declarations是局部声明。 executable_statements是可执行语句。 exception_handlers是异常处理程序。
--示例1: 演示创建过程(参数列表中为IN参数赋予一个默认值,不能为OUT、IN OUT参数赋予默认值)
create or replace procedure find_emp
(
emp_no in number := 7900
)
as
empname varchar2(20);
begin
select
ename
into
empname
from
emp
where
empno = emp_no
; dbms_output.put_line('雇员姓名是 '
|| empname);
exception
when no_data_found then
dbms_output.put_line('雇员编号未找到');
end find_emp;
--调用过程:EXECUTE procudure_name(parameters_list);
--也可以在过程里面调用,直接写上procudure_name而不必写EXECUTE。
--示例2:演示创建带OUT参数的过程
create or replace procedure test
(
value1 varchar2
, value2 out number
)
is
identity number;
begin
select
sal
into
identity
from
emp
where
empno = value1
; if identity < 2000 then
value2 := 1000;
else
value2 := 500;
end if;
end;
--调用带OUT参数的过程:
declare
value2 number;
begin
test('7900', value2);
dbms_output.put_line(value2);
end;
--示例3:演示创建带IN OUT参数的过程
create or replace procedure swap
(
p1 in out number
, p2 in out number
)
is
v_temp number;
begin
v_temp := p1;
p1 := p2;
p2 := v_temp;
end;
--调用带IN OUT参数的过程:
declare
num1 number := 100;
num2 number := 200;
begin
swap(num1, num2);
dbms_output.put_line('num1= '
|| num1);
dbms_output.p ut_line('num2= '
|| num2);
end;
--示例4:将过程的执行权限授予其他用户
GRANT EXECUTE ON find_emp TO scott;
GRANT EXECUTE ON swap TO PUBLIC;
--将find_emp过程的执行权限授予给用户scott,将执行swap过程的权限授予所有数据库用户。
--删除过程语法:
DROP PROCEDURE procudure_name;

最新文章

  1. Unique Binary Search Trees
  2. IP和端口的相关检测
  3. 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug
  4. 玩转渗透神器Kali:Kali Linux作为主系统使用的正确姿势TIPS
  5. BZOJ 3043
  6. Ural1057 - Amount of Degrees(数位DP)
  7. 3xian之所在
  8. UNIX网络进程间通信漫谈(1)
  9. jquery插件datepicker
  10. HDU - 5036 Explosion
  11. DIV 实现可拖拽 功能(留档)
  12. 使用关系型数据库作为Redis落地的思路
  13. chrome无法登陆账号,显示操作超时的解决方案
  14. docker 发布方式尝试
  15. Why Random Initialization in Neural Network?
  16. Maven解决包冲突
  17. vue 修饰符
  18. AR 前言
  19. dedecms自定义表单时间时间戳值类型的转换方法
  20. 《算法》第五章部分程序 part 5

热门文章

  1. Java基于POI实现excel任意多级联动下拉列表——支持从数据库查询出多级数据后直接生成【附源码】
  2. makefile从入门到入门
  3. 043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用
  4. matlab中fseek 移至文件中的指定位置
  5. AngularJS应用访问Android手机画廊
  6. ls: 显示目下的内容及相关属性信息
  7. golang Gin framework with websocket
  8. Linux执行脚本让进程挂掉后自动重启
  9. 多测师讲解接口测试_F12中network里headers各项属性的含义——高级讲师肖sir
  10. Warning: Permanently added the RSA host key for IP address &#39;52.74.223.119&#39; to the list of known hosts.