博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle procedure存储过程
阅读量:6673 次
发布时间:2019-06-25

本文共 1561 字,大约阅读时间需要 5 分钟。

 

1、基本结构

CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1    IN NUMBER,    参数2    IN NUMBER       ) IS/AS变量1    INTEGER :=0;变量2    DATE;BEGIN...END 存储过程名字

 

2、SELECT INTO STATEMENT

  将select查询的结果存入到变量中,可以同时将多个列(字段)存储到多个变量中,必须有一条记录,否则抛出异常(如果没有记录,抛出NO_DATA_FOUND)

例子:

BEGIN     SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;     EXCEPTION         WHEN NO_DATA_FOUND THEN      ROLLBACK;     RAISE; END;

 

3、IF判断

IF    条件1    THEN     Do Someting    ELSIF    条件2    THEN        Do Someting    ELSIF    条件3    THEN        Do Someting    ELSE        Do SometingEND IF;

 

4、while循环

WHILE V_TEST=1 LOOP     BEGIN         XXXX     END; END LOOP;

5、变量赋值

V_TEST := 123;

6、用for    in使用cursor(游标)

...     IS         CURSOR cur IS SELECT * FROM xxx;     BEGIN         FOR cur_result in cur LOOP             BEGIN             V_SUM :=cur_result.列名1+cur_result.列名2             END;         END LOOP;     END;

7、用pl/sql developer debug

  连接数据库后建立一个Test Window

  在窗口输入调用SP的代码,F9开始Debug,CTRL+N单步调试

 

注意事项:

1)存储过程参数不带取值范围,in表示传入,out表示输出;

2)变量可带取值范围,后面接分号;

3)在判断语句前最好先用count(*)函数判断是否存在该条操作记录

4)用select...into...给变量赋值

5)在代码中抛出异常用RAISE;通常的用法:

EXCEPTION    WHEN OTHERS THEN        ROLLBACK;        RAISE;/*异常分很多类,如NO_DATA_FOUND。OTHERS处本应该写异常名称,如果不想把异常分得那么细,可以笼统一点用OTHERS来捕获,即所有异常均用OTHERS来捕获。WHEN OTHERS THEN 表示是其它异常。RAISE表示抛出异常,让User可以看到。*/

6)AS/IS的区别

  在试图(VIEW)中只能用AS不能用IS

  在游标(CURSOR)中只能用IS不能用AS

7)输出变量赋值有两种,一种是直接:=,还有一种就是SELECT INTO

8)显示调试信息

  a.存储过程中在必要的位置添加

DBMS_OUTPUT.put_line('HI');

  b.打开DBMS_OUTPUT

show serveroutput;set serveroutput on;

9)删除PROCEDURE

DROP PROCEDURE procedure_name;

 

转载地址:http://owgxo.baihongyu.com/

你可能感兴趣的文章
Blog样式
查看>>
CF1062F Upgrading Cities
查看>>
SpringBoot(1.5.6.RELEASE)源码解析(二)
查看>>
POJ 1052 MPI Maelstrom
查看>>
流量异常监控
查看>>
三位印象深刻的老师与往事
查看>>
第五周作业
查看>>
python考试
查看>>
what
查看>>
Javascript图片轮播
查看>>
java 实现七大基本排序算法
查看>>
Single Number
查看>>
bat批量重命名文件
查看>>
Java使用对象流读取文件的问题
查看>>
算法作业
查看>>
4.15 Service笔记
查看>>
码教授J41项目答辩胜利结束,码教授为他们圆梦
查看>>
5 .5 数据库关系图
查看>>
bzoj 2044 三维导弹拦截——DAG最小路径覆盖(二分图)
查看>>
获取一篇新闻的全部信息
查看>>