oracle存储过程写法 并行_「oracle 存储过程」Oracle存储过程基本写法 - seo实验室...

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;

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 ;

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

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

相关阅读

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

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

MainActivity:

public class MainAct

定义:innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。

/*这串代码的var a的变量是我瞎写的。我忘记js咋样定义变量

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

第一章 基本句型及补语

五种单句的基本句型

补语

需要补语的动词

宾语补语的句型

补语的词类

没有补语的be动词

有两个宾语的句型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值