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.异常中的错误代码和错误消息
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存储过程的基本语法相关推荐
- [转]oracle 存储过程的基本语法 及注意事项
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) ...
- oracle 存储过程的基本语法 及注意事项
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) ...
- oracle存储过程学习经典[语法+实例+调用]
Oracle存储过程基础知识 商业规则和业务逻辑可以通过程序存储在Oracle中,这个程序就是存储过程. 存储过程是SQL, PL/SQL, Java 语句的组合,它使你能将执行商业规则的代码从你的应 ...
- oracle存储过程(基础语法)
1.存储过程的定义 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 ...
- oracle 存储过程的基本语法
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER := ...
- oracle存储过程的常用语法
记录一下,主要方便自己以后查找: create or replace procedure sp_test ( aa in varchar, bb in number default 0 ) is v_ ...
- oracle 存储过程语法
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) ...
- Oracle存储过程语法学习
Oracle存储过程: 1.1 第一个存储过程 --创建存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out va ...
- Oracle 存储过程语法及使用
写在前面 本来这种东西作为一个写Java的我以为应该是基本用不上的,以前基本就是听过而已的一个概念,但是实际接到的一个需求就是需要数据库去定期执行存储过程,本着打好基础的目的,还是稍微学习了一下,本篇 ...
最新文章
- Linux 内核启动流程
- 哈尔滨理工大学ACM集训第二周总结
- 概率统计笔记:高斯威沙特分布
- 2008.02.05
- c语言如何打印unicode字符,如何在C ++中打印Unicode字符?
- 大数据之-Hadoop完全分布式_集群的启动和停止方式总结---大数据之hadoop工作笔记0039
- HTTP Status 500 - Could not write content: Object is null 解决方法
- C++自己实现一个String类
- iPhone UI 元素大小
- android 基础布局
- 华为NP课程笔记9-BGP 3
- 光纤跳线接口_一篇文章读懂光纤接头、尾纤、耦合器、终端盒的作用与接法!...
- Win10无线投屏功能安装失败解决办法
- 服务器系统https打不开网页,记录一次解决网站突然无法打开处理HTTP被封的问题...
- AT指令判断NBIoT网络质量
- app第三方支付测试点
- 华硕ac68u最佳设置_华硕AC68U路由器APP远程控制设置教程
- provided port 35589 is not reachable
- 深度强化学习发展现状及展望:万字总结解读83篇文献
- AlexNet 参数计算
热门文章
- 城市WiFi好看还应该好用
- CDH的几个包的下载地址
- Struts2+Spring3.1+Hibernate3.3的整个项目
- 微软BI 之SSAS 系列 - 多维数据集维度用法之二 事实维度(退化维度 Degenerate Dimension)...
- 海量大数据处理最新面试题-1
- 举例分析Linux动态库和静态库
- 在唯一密钥属性“name”设置为“Application”时,无法添加类型为“add”的重复集合项...
- 日本語のマナーを学びましょう
- Openstack组件部署 — Nova_安装和配置Controller Node
- 关于“#ifdef __cplusplus” 和 extern C 的问题