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. mysql分组后统计
  2. UTL_FILE包用法小记
  3. org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for
  4. 鹰眼拓扑锁定跟踪 网络管理一目了然
  5. @程序员,你的编程方式已过时,云开发时代来临!
  6. mysql 简单游标
  7. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
  8. 开课吧Java面试题:虚引用与软引用和弱引用的区别
  9. 智慧医疗何去何从?阿里云和行行查联合发布了《2021年中国智慧医疗行业白皮书》
  10. python轮胎缺陷检测_基于深度学习的轮胎缺陷无损检测与分类技术研究
  11. Android手机会中电脑病毒么,安卓手机中木马病毒怎么办
  12. Mac M1 + Vmware Fusion 安装 Windows 11 arm版及相关问题解决
  13. Google IPV6 地址
  14. TVS二极管的工作原理与选型
  15. 三国志战略版:官渡之战_新阵容解读_曹操
  16. 【PHP基础-3】PHP常用运算符
  17. 冲压模具中的回弹解决办法
  18. mysql查询最新的一条记录_mysql 查询不同用户 最新的一条记录
  19. D2x神符之语中英文对照图文豪华版
  20. 适合520发朋友圈的文案句子精选

热门文章

  1. 推荐系统 (一): 推荐系统的架构
  2. 三、IDEA+Docker-Compose的简单使用
  3. 什么是消防设施操作员,就业前景如何
  4. 配置给127.0.0.1配置本地域名
  5. 凯哥自媒体赚钱秘籍:其实自媒体写文章赚钱很简单!
  6. echarts设置饼状图的标示线以及标示文字样式
  7. 图书管理系统之登录跳转对应页面(三)
  8. 树莓派打造成全能路由器
  9. 大学计算机云计算ppt,云计算技术在大学计算机应用大赛中的应用分析
  10. 打造东湾“北拓东进”纵深科技创新走廊探讨‖ 2019大亚湾论坛