必威体育Betway必威体育官网
当前位置:首页 > IT技术

Oracle存储过程基本写法

时间:2019-08-22 13:14:30来源:IT技术作者:seo实验室小编阅读:54次「手机版」
 

oracle 存储过程

oracle 存储过程的基本语法

1.基本结构 

CREATE OR REPLACE PROCEDURE 存储过程名字

(

   参数1 IN NUMBER,

   参数2 IN NUMBER

) IS

变量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

 xxxx;

END;

...

3.IF 判断

IF V_TEST=1 THEN

   BEGIN 

  do something

   END;

END 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.带参数的cursor

CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;

OPEN C_USER(变量值);

LOOP

FETCH C_USER INTO V_NAME;

EXIT FETCH C_USER%notfound;

   do something

END LOOP;

CLOSE C_USER;

8.用pl/sql developer debug

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

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

简单实例,通过DBMS_OUTPUT来看结果

CREATE OR REPLACE PROCEDURE bb (lic_para IN VARCHAR2,out_para OUT VARCHAR2)

AS

  temp   VARCHAR2 (100);

BEGIN

  SELECT lic_no

INTO temp

FROM t_vehicle_info

WHERE lic_no = lic_para;

   out_para:=temp;

   DBMS_OUTPUT.put_line (out_para);

END bb;

下面是调用:

begin

 -- Call the procedure

bb(lic_para => :lic_para,

out_para => :out_para);

end;

实例:

CREATE OR REPLACE PROCEDURE 要创建的存储过程名称 (

入参a IN VARCHAR2,

出参b out VARCHAR2

IS 变量c VARCHAR2 (2000) ; 

变量d NUMBER (10) ;

异常变量e EXCEPTION ;

BEGIN

IF 入参a IS NULL THEN

raise 异常e ;

END IF ;// 跳到异常处理 

FOR cc IN (select语句) LOOP // 执行sql 

v_sql := 'select语句' ; 

EXECUTE IMMEDIATE v_sql INTO v ;// 把查询的结果放到v中; 

// sql查询,并放到v2中 

SELECT

COUNT (*) INTO v2..; // 进行相关判断

IF v2 = 1 THEN

update、insert等操作 ;

END IF ;

END loop ; 

COMMIT ; 

MSG := 'success' ; 

// 异常处理

EXCEPTION

WHEN NECE THEN

MSG := '入参a不能为空' ;

WHEN OTHERS THEN

MSG := sqlerrm ;

rollback ;

END 要创建的存储过程名称 ;

原文转载:https://www.cnblogs.com/chinafine/articles/1776085.html

相关阅读

Matlab基本函数 length函数

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,

Android startActivityForResult基本用法

从A页面使用startActivityForResult()跳转到B页面,B页面点击返回时将新写入的值传回到A页面。 MainActivity: public class MainAct

innerHTML的基本用法

定义:innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。 /*这串代码的var a的变量是我瞎写的。我忘记js咋样定义变量

UML类图入门,看完基本懂了怎么画图了

第一篇,原文链接http://blog.csdn.net/monkey_d_meng/article/details/6005764UML类图新手入门级介绍 举一个简单的例子,来看这样

第一章 基本句型及补语

第一章 基本句型及补语 五种单句的基本句型 补语 需要补语的动词 宾语补语的句型 补语的词类 没有补语的be动词 有两个宾语的句型

分享到:

栏目导航

推荐阅读

热门阅读