Oracle 存储过程 捕获异常
1、带参数插入并带返回值,异常信息
CREATE OR REPLACE PROCEDURE test_pro (v_id in int,v_name in varchar2,app_code out int,error_Msg out varchar) -- in 是输入参数;out 输出参数
IS
BEGIN
INSERT INTO proc_test (id,name) VALUES (v_id,v_name); --往表中插入一条数据
app_code:=8; --执行状态码,8 成功;9失败
error_Msg:='执行成功'; --执行执行结果
commit; --提交事务
EXCEPTION
rollback; --回滚提交的事务
when others then
app_code:=9; --执行状态码,8 成功;9失败
error_Msg:=SUBSTR(SQLERRM, 1, 200); --返回报错信息
--存储过程调用失败,往存储过程日志表追加一条记录,方便以后查询;第一个参数:调用存储过程名,第二个参数:错误信息
INSERT INTO proc_error (proc_name,msg_error) VALUES ('test_pro',error_Msg);
commit; --重新提交事务,记录日志
END;
调用
--调用存储过程
DECLARE
app_code number; --声明变量,用于接收状态码
msg_error varchar(200); --声明变量,用于接收错误信息
BEGIN
test_pro(2,'222',app_code,msg_error);
dbms_output.put_line(app_code); --输出状态码
dbms_output.put_line(msg_error); --输出错误信息
END;
Oracle 存储过程 捕获异常的更多相关文章
- oracle plsql 捕获异常和抛出异常
在写oracle存储过程的时候很多东西放到存储过程里面比如一些判断等,要比在程序逻辑里面简单很多,但是也会涉及到捕获和抛出一样的问题. 捕获异常 语法: 首先定义异常: <异常情况> E ...
- Oracle存储过程小解
Oracle存储过程小解 1.创建语法 create or replace procedure pro_name( paramIn in type, paramOUt out type, paramI ...
- oracle 存储过程
来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...
- Oracle存储过程语法
原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- Oracle存储过程(转)
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程中异常Exception的捕捉和处理
Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...
- Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER
关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...
随机推荐
- JavaScript 实现前端文件下载
A.download HTML5的A标签有一个download属性,可以告诉浏览器下载而非预览文件,很实用,参考链接:http://www.zhangxinxu.com/wordpress/2016/ ...
- Java面试题:Spring中的循环依赖,给程序员带来的心理阴影
循环依赖通常发生在两个或多个Spring Bean之间,它们通过构造器.字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环.下面是一个使用字段注入(即使用@Autowired ...
- java学习之旅(day.04)
运算符 算术运算符:+ ,- ,* ,/,%(取余或模运算), ++(自增),-- (自减) 赋值运算符:= 关系运算符:>, <,>=, <=, ==, !=(不等于),in ...
- grpc使用nginx代理配置
参考:https://www.nginx.com/blog/nginx-1-13-10-grpc/ 重点是标记红色的部分 http { log_format main '$remote_addr - ...
- 基于Ubuntu20.04在k8s 1.25部署gin+MySQL服务
0. 前言 某天突发奇想,既然都学了 docker 了,那干脆,顺便把 kubernetes 也学了,于是开始了我长达一个月的环境搭建.踩坑历程. 最开始,我的想法是,在我的物理机使用 WSL + d ...
- WPF ListBox 控件绑定 Binding
当我们需要用到循环的列表内容,并且模板化程度高的时候,建议使用 ListBox 来做绑定.XAML: <Window.DataContext> <local:VMTempTest/& ...
- 个人记录:连接、查询、写入PG数据库类文件
# --coding:utf-8-- import pandas as pd import yaml from sqlalchemy import create_engine import psyco ...
- React 中的 useRef 与 useState
React 是一个流行的 JavaScript 库,用于构建用户界面.它提供了几个钩子,使开发人员能够管理状态并执行副作用. React 中两个常用的钩子是 useRef 和 useState .虽然 ...
- docker基础使用和资源限制
为什么使用容器 docker设计目标: 提供简单的应用打包工具 开发人员和运维人员职责逻辑分离 多环境保持一致性 轻量级 kubernetes设计目标: 集中管理所有容器 资源编排 资源调度 弹性伸缩 ...
- open代码学习
ADC 用宏定义c++编译器兼容c程序 #ifdef __cplusplus extern "c" { } 枚举类型传值 typedef enum{ CHANNAL_1 = 1; ...