oracle存储过程报错 跳过,oracle调试存储过程的过程详解

oracle调试存储过程的过程详解

oracle如果存储过程比较复杂,我们要定位到错误就比较困难,那么可以存储过程的调试功能

先按简单的存储过程做个例子,就是上次做的存储过程(proc_test)

1、先在数据库的procedures文件找到我们之前创建存储过程

bf4c1ce13d22fe334079425fa8e12c3b.png

2、选中存储过程,右键弹出菜单,选择 测试

7ae18f5c4f6c95e824520317b16048a7.png

3、出现测试脚本页面,输入动态参数值,点击左上角的标志,进入调式模式

4698835b8ade21d566206d581be5c235.png

4、出现调试操作按钮界面(依次:运行 单步进入 单步跳过 单步退出 运行到下一个异常)

0cc81227909b5817da76bc2d2292253b.png

5、点击运行,直接获取存储过程的返回结果,点击单步进入,点击左边,进行断点调试(已进入函数方法中)

3c6b79af838b1ce213ebfdcdd3d0f36d.png

6、将变量添加到监视器中,进行监控

cfbfcd6bd5221953dfaa90cd761a8e15.png

5b2cf8bc15cedc8c5b0b22ea86bd5490.gif

监视界面

4f736dfc88c96f1367d8e9f183950912.png

7、最后执行完存储过程,输出结果

5a2cbf3eab496527d3cc70e7ce3b4ae2.png

Ps:

参考如下网址: https://www.jb51.net/article/191559.htm

到此这篇关于oracle调试存储过程的过程详解的文章就介绍到这了,更多相关oracle调试存储过程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-07-23

调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担. 工具/原料 PL\SQL Oracle 方法/步骤 首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过. 找到想要调试的存过,左键单击选中该存过(

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图如下: 4.该截图说明权限不够,需要添加scott用户的权限. 5.增加权限语句如下: SQL> show user USER 为"SCOTT" SQL> connect system 输入口令: 已连接. SQL> show user USER 为"SYSTE

909ae7fa505ac29049abac9bddeda093.png

详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响.有测试人员反应,原来抽过的数,偶尔就无缘无故的找不到了,有时又会出来重复行.这个问题产生肯定是抽数逻辑问题以及并行的问题了!但他们提了一个简单的需求:想知道什么时候数据被删除了,什么时候插入了,我需要监控"表的每一次变更"! 技术选择: 第一就想到触发器,这样能在不涉及业务系统的代码情况

详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大家, 实例代码: public List> doCallProcedure(String procedureString,String[] parameters) throws PersistentDataOperationException { if (!isReady ()) { throw new PersistentDataOperatio

详解Oracle在out参数中访问光标 一 概念 申明包结构 包头:负责申明 包体:负责实现 二 需求 查询某个部门中所有员工的所有信息 三 包头 CREATE OR REPLACE PACKAGE MYPACKAGE AS type empcursor isref cursor; procedure queryEmplist(dno in number,emplist out empcursor); END MYPACKAGE; 四 包体 包体需要实现包头中声明的所有方法 CREATE OR

下面看下Oracle游标的简易用法,具体代码如下所示: create or replace procedure NW_DelYW(iOPERATION_ID number, sUserID varchar2) is sCurDJBH yw_operation_link.djbh%type; cursor table_yw(ywid yw_operation.id%type) is select * from yw_operation_link t1 where t1.operation_id =

在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系. 1.Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限. 创建语句如下: CREATE SEQUENCE seqTest INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXvalue -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; --设置缓存ca

注意:Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用. 从Oracle的系统表中,我们知道Oracle存在一个隐含参数_disable_logging可以用于禁用日志生成,这个参数显然只能用于测试目的(可以极大提高Benchmark测试的性能),禁止日志生成必然导致事务的不可恢复性,而且会导致日志文件损坏. SQL> select ksppinm,ksppdesc from x$ksppi where ksppinm like '%logging'; KSP

学习Oracle是一个复杂.繁琐的过程.在浩如烟海的Oracle官方资料.新特性.MOS资料和各种Internal知识面前,我们总是觉得力不从心.不知所措.但是,这往往也就是我们不断坚持.积累和追寻的乐趣. 在Oracle 11g中,提出了突破传统专用/共享连接的第三种连接方式--Database Resident Connection Pooling(DRCP).本篇我们一起来探讨这项技术. 1. 从Dedicated Server到Shared Server Client Process连接

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,"转换格式" ) 即把给定的日期按照"转换格式"转换. 转换的格式: 表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月:mon 用简写形式 比如11月或者nov :m