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

Oracle存储过程基本写法相关推荐

  1. oracle存储过程(写法+实战)

    1. 先看看oracle存储过程的格式: create or replace procedure p_add(num1 in number,num2 in number, result out num ...

  2. oracle存储过程游标写法,Oracle存储过程,游标使用

    语法: CREATE [OR REPLACE] PROCEDURE procedure_name (arg1 [mode1] datatype1,arg2 [mode2] datatype2,...) ...

  3. oracle存储过程的写法

    create or replace procedure 要创建的存储过程名称(入参a in varchar2, 出参b out varchar2) is变量c varchar2(2000);变量d n ...

  4. oracle存储过程写法 并行_oracle存储过程的写法

    1.存储过程的基本语法: CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type) IS 变量1 类型(值范围); 变量2 类 ...

  5. php oracle 存储过程 返回值,PHP 调用 Oracle 存储过程 之 查询

    在网上找了很久都没找到结果,今天看帮助,结合JAVA程序中的一个实例,写出了这个PHP调用Oracle存储过程的例子,也许有人会说PHP调用存储过程是很简单的,但在这里我还是想把这点小成就拿来共享一下 ...

  6. Oracle存储过程日常工作整理写法实例

    Oracle存储过程日常工作整理写法实例 create or replace package body CUX_HRMIS_SYNC_PKG is /*  *-- Creation time:2016 ...

  7. Oracle存储过程(增、删、改)写法

    工作上也没什么事情,一天都琐碎的事,空闲时间比较多,自己可以随意安排. 分析目前的形式,发现自己要学的东西真是太多了,都不知道要学什么好,例如:数据库.开发技术.管理--这些技术东西,一天一天都在更新 ...

  8. Oracle的存储过程基本写法

    目录 1.1 Oracle存储过程简介: 1.2 创建存储过程的语法: 1.3 示范一些存储过程 1.3.1 不带参数的存储过程: 1.3.2 带参数的存储过程: 1.3.3 出现异常的输出存储过程: ...

  9. oracle存储过程建表写法,用oracle存储过程创建表

    create or replace procedure createtable(tname in varchar2) is sqlTEXT varchar2(400); v_createsql var ...

最新文章

  1. CRT 入口函数 CRTStartup
  2. 深入认识javascript中的eval函数
  3. linux 关机 日志,centos7 异常关机了,怎么查看系统的异常日志?
  4. python语言数据挖掘python语言数据_Python语言数据挖掘01-环境搭建
  5. swing组建的层次
  6. 开放世界下的混合域适应 ——面向真实自然场景下的全新迁移学习范式
  7. 边开发就能边测试?一招教你在linux服务器配置Jenkins持续集成神器
  8. 在SQL2008中,如何让id自动生成并自动递增?如何让时间默认生成?
  9. python flask将读取的图片返回给web前端
  10. FME 应用cad处理
  11. java自动回复_java实现自动回复聊天机器人
  12. Python爬虫入门教程 97-100 帮粉丝写Python爬虫之【shuan色球预测前置条件】
  13. python你已经是个成熟的软件了_支付宝改自己还花呗表情包_你已经是个成熟的软件系列表情包大全_游戏吧...
  14. Ubuntu20.04 conda安出错,成功解决:solving environment:failed with initial frozen solve.Retrying with flexibl
  15. 数字电路74161(MN)
  16. delete mysql 语法_mysql delete where 语法无法使用
  17. android QVGA WQVGA HVGA VGA WVGA各个分辨率的区别
  18. 脑机实验室系列 | 浙大求是高等研究院脑机接口研究所
  19. 路由策略Routing Policy和策略路由PBR的区别
  20. 警灯,警铃四合一【Arduino玩具】

热门文章

  1. 四川高考成绩查询2021年什么时候,2021年四川高考成绩排名及成绩公布时间什么时候出来...
  2. 聚类分析——SPSS实例分析
  3. 《我的兄弟叫顺溜之这尼玛也能翻盘》——HLOI2018游记
  4. 用户界面上的光环效应
  5. 抖音小店运营全套系列课,系统掌握月销100w+小店的核心秘密
  6. 行人检测最新论文简介
  7. 【浪潮】从 Win10 新品发布会看 iPad Pro
  8. EXCEL中IF函数多重嵌套使用和EXCEL下拉框
  9. 记录一次mvn命令 找不到jar包问题
  10. 告别移动飞信,选择电信天翼Live