存储过程基本语法结构
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;
存储过程基本语法结构相关推荐
- Oracle存储过程基本语法和基础教程
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER := ...
- oracle 存储过程基本语法
oracle 存储过程基本语法 分类: Oracle 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法---- ...
- 数据结构与算法:02 C#语言基本语法结构
02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...
- R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...
- SQLSERVER存储过程基本语法
一.定义变量 --简单赋值 declare @a int set @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @ ...
- FPGA之道(40)HDL的语法结构
文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...
- python003 一 Python起步、pyhthon运行方式、语法结构、python变量
一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行 (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...
- oracle存储过程循环单列,Oracle存储过程循环语法实例分析
本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 sql;"> loop statements; end loop; 例子: sql;& ...
- PHP条件语句总结,PHP 条件语句基本语法结构
php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...
最新文章
- SAP WM LQ02 为供应商寄售库存去K的时候,如果有Open TO单,则不能成功为物料去K?
- Linux 卸载旧版本的 JDK 并且升级新的JDK 【转】
- condest--1-范数的条件数估计
- OC之非ARC环境下循环retain问题
- ipconfig /flushdns 清除系统DNS缓存
- 文本框焦点事件显示隐藏文本框内容
- 面向对象3:类和对象
- 关于JS访问文件服务器的HTTP文件地址实现文件下载
- SQL 2008完全卸载
- 51单片机小车(附源码)
- NTP授时服务器(网络校时服务器)对医院信息化建设的重要
- 阿里云无影云桌面使用教程(3分钟上手)
- 点云匹配介绍与ICP算法
- idea.log如何精确查看错误信息
- ArcGIS Server 切片数学关系阐释,小区域切图频繁出错解决方法
- 基本概念学习(7003)---网络流量
- 图书速读 | 一分钟读完《学会如何学习》
- 简洁明了的刘海屏适配方案
- C语言画伯德图程序,已知系统的传递函数,试绘制系统的伯德图。 (1) (2)
- 中科创达 面试题目合集(2021.8)
热门文章
- ubuntu18 全志H6开发板 开机启动,联网问题
- ubuntu五笔输入法设置过程
- 基于卷积神经网络迁移学习的手写体汉字识别
- 用Python基础知识实现了一个在线的markdown编辑工具、基于Editor.md、Flask、Flask_SQLAlchemy、sm.ms
- 易语言 图片插入超级列表框_4个超实用网站分享!PDF转换、图片资源、思维导图、在线抠图...
- 逆变器方案(高频 工频)正弦波逆变驱动开发板,完全兼容EG8010驱动板
- android三星打印插件,三星打印服务插件
- 电脑测试软件删了如何恢复了,如何把已经删掉的文件快速恢复过来
- 【显著性检测】Matlab实现显著性检测SR算法
- element-plus打包报错/vue3.0+vite+ts别名引入ts文件报错