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.异常中的错误代码和错误消息

  Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息。

OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检测到。
  在一个内在的异常中,SQLCODE返回Oracle错误的序号,而SQLERRM返回的是相应的错误消息,错误消息首先显示的是错误代码。SQLCODE返回的是负数,除非Oracle的错误为“ORA-01403:NO DATA FOUND”(译:ORA-01403:未找到数据),当Oracle错误为“ORA-01403:NO DATA FOUND”时,其对应的SQLCODE为+100。对于用户自定义的异常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception。
  一个Oracle的错误消息最多只能包含512个字节的错误代码。如果没有异常被触发,则SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
c_sqlcode := SQLCODE;
c_sqlerrm := SUBSTRB(SQLERRM, 1, 512);
o_sts := ‘-1’;
c_error := c_process_sts_error;
END PROC_SEND_RECEIVE_ERR_INS;

存储过程基本语法结构相关推荐

  1. Oracle存储过程基本语法和基础教程

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INTEGER := ...

  2. oracle 存储过程基本语法

    oracle 存储过程基本语法 分类: Oracle 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法---- ...

  3. 数据结构与算法:02 C#语言基本语法结构

    02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...

  4. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  5. SQLSERVER存储过程基本语法

    一.定义变量 --简单赋值 declare @a int set @a=5 print @a   --使用select语句赋值 declare @user1 nvarchar(50) select @ ...

  6. FPGA之道(40)HDL的语法结构

    文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...

  7. python003 一 Python起步、pyhthon运行方式、语法结构、python变量

    一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行   (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...

  8. oracle存储过程循环单列,Oracle存储过程循环语法实例分析

    本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 sql;"> loop statements; end loop; 例子: sql;& ...

  9. PHP条件语句总结,PHP 条件语句基本语法结构

    php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...

最新文章

  1. SAP WM LQ02 为供应商寄售库存去K的时候,如果有Open TO单,则不能成功为物料去K?
  2. Linux 卸载旧版本的 JDK 并且升级新的JDK 【转】
  3. condest--1-范数的条件数估计
  4. OC之非ARC环境下循环retain问题
  5. ipconfig /flushdns 清除系统DNS缓存
  6. 文本框焦点事件显示隐藏文本框内容
  7. 面向对象3:类和对象
  8. 关于JS访问文件服务器的HTTP文件地址实现文件下载
  9. SQL 2008完全卸载
  10. 51单片机小车(附源码)
  11. NTP授时服务器(网络校时服务器)对医院信息化建设的重要
  12. 阿里云无影云桌面使用教程(3分钟上手)
  13. 点云匹配介绍与ICP算法
  14. idea.log如何精确查看错误信息
  15. ArcGIS Server 切片数学关系阐释,小区域切图频繁出错解决方法
  16. 基本概念学习(7003)---网络流量
  17. 图书速读 | 一分钟读完《学会如何学习》
  18. 简洁明了的刘海屏适配方案
  19. C语言画伯德图程序,已知系统的传递函数,试绘制系统的伯德图。 (1) (2)
  20. 中科创达 面试题目合集(2021.8)

热门文章

  1. ubuntu18 全志H6开发板 开机启动,联网问题
  2. ubuntu五笔输入法设置过程
  3. 基于卷积神经网络迁移学习的手写体汉字识别
  4. 用Python基础知识实现了一个在线的markdown编辑工具、基于Editor.md、Flask、Flask_SQLAlchemy、sm.ms
  5. 易语言 图片插入超级列表框_4个超实用网站分享!PDF转换、图片资源、思维导图、在线抠图...
  6. 逆变器方案(高频 工频)正弦波逆变驱动开发板,完全兼容EG8010驱动板
  7. android三星打印插件,三星打印服务插件
  8. 电脑测试软件删了如何恢复了,如何把已经删掉的文件快速恢复过来
  9. 【显著性检测】Matlab实现显著性检测SR算法
  10. element-plus打包报错/vue3.0+vite+ts别名引入ts文件报错