首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果on proc中有错误,则执行plsql块.Even中的所有过程

在Oracle数据库中,"on proc"是指在PL/SQL块中执行的过程。如果在执行过程中发生错误,可以使用异常处理机制来处理错误并执行相应的操作。

异常处理是一种在程序执行过程中捕获和处理异常的机制。在PL/SQL中,可以使用BEGIN...EXCEPTION...END语句块来定义异常处理逻辑。当在"on proc"过程中发生错误时,可以使用EXCEPTION关键字来捕获异常,并在EXCEPTION块中执行相应的操作。

以下是一个示例代码:

代码语言:txt
复制
BEGIN
  on proc; -- 执行"on proc"过程
  
EXCEPTION
  WHEN OTHERS THEN
    -- 执行异常处理逻辑
    DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);
    -- 执行PL/SQL块中的其他操作
    plsql块.Even;
END;

在上述代码中,如果在执行"on proc"过程时发生错误,程序将捕获异常并执行异常处理逻辑。异常处理逻辑可以根据具体需求进行定义,例如输出错误信息、记录错误日志、回滚事务等。

关于PL/SQL块中的其他过程"Even",可以根据具体需求来执行相应的操作。这里无法提供具体的推荐产品和链接地址,但可以根据需要选择适合的腾讯云产品来支持相关的开发需求,例如云数据库、云函数、云存储等。

需要注意的是,本回答中没有提及具体的云计算品牌商,因此无法给出与腾讯云相关的产品和链接地址。如需了解腾讯云的相关产品和服务,请访问腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

proc插入VARCHAR2字段报ORA-01461: can bind a LONG value only for insert into a LONG column

最近做一个天信达货运接口项目,碰到这么个诡异问题。 背景: 使用proc应用,向数据库插入记录。表中有三个VARCHAR2(4000)类型字段。注:Oracle 9i库。...然后换了一个10g库,用proc可以正确完成插入。 难道9i库,对于proc插入有什么特殊限制? 解决过程: 1....文章说明了问题之和9i及之前版本有关,并且指出同一个ORA错误可能在高版本中出现,但根本原因和这里要描述不同。...如果有一个这样列,再加上一个LONG列,或者有两个或更多这样列,数据库会认为你正在绑定两个LONG列。因此就会报这种错误。 对于以上错误workaround方法,MOS给出了四种: 1....但使用PLSQL Developer或SQLPLUS这些非OCI驱动,则不会报错。 2. 使用proc绑定变量,根据上面的实验来看,会让ORA-01461这个错误产生更混淆。 3.

2.7K40

关于shellplsql脚本错误排查与分析(r4笔记第21天)

明白了存储过程整体实现思路,来看抛出错误错误是一个老套ORA错误。...ORA-00942: table or view does not exist 根据错误信息,出错地方是在第一个存储过程proc1 这个存储过程内容就很丰富了,里面会调用动态sql创建view,创建临时表...因为有些pl/sql不能随便执行,不能随便创建view,table等,所以通过explain plan能够快速校验出哪些表可能存在问题或者无法访问等等。 如果存在,那么很快就会解析生成执行计划。...如果出错,就会很明显得到错误出处。.../u02/app/plsql/test.sql 这样在shell脚本调用使用@test.sql调用方式来运行pl/sql就很可能就是库文件路径而不是当前开发目录下了。

1.2K50

oracle基本面试题_mongodb面试题

函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数建议使用存储过程 4). 在sql数据操纵语句中只能调用函数而不能调用存储过程 4....导入/导出是二进制数据, 2.plsql导入/导出是sql语句文本文件 5. Oracle中有哪几种文件?...企业规则特点是要经常变化,如果把体现企业规则运算程序放入应用程序当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。...如果把体现企业规则 运算放入存储过程当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。 缺点: 1. 可移植性差 2....30. oracle存储过程,游标和函数区别 游标类似指针,游标可以执行多个不相关操作.如果希望当产生了结果集后,对结果集中数据进行多 种不相关数据操作 函数可以理解函数是存储过程一种

3.3K20

Oracle PLSQL基础语法学习15:静态表达式

IF指令用于测试编译时常量值,如果值为TRUE,执行THEN指定代码,否则执行$ELSE指定代码。...在存储过程主体,使用 EXECUTE IMMEDIATE 语句来执行了一个 SQL 查询,查询是名为 table1 所有数据。...由于存储过程是以当前用户权限来运行,因此只有当前用户具有足够权限才能执行该查询。如果当前用户没有对表 table1 访问权限,该查询将失败并抛出异常。...在存储过程主体,使用 EXECUTE IMMEDIATE 语句来执行了一个 SQL 查询,查询是名为 table1 所有数据。...因此,只要该定义者具有访问表 table1 权限,无论调用该存储过程用户具有何种权限,该查询都会成功执行。 但是,如果定义者在创建存储过程时已经不存在或者权限被撤销,该存储过程无法成功执行

14750

plsql编程---过程、函数、包

如下所示: declare /*定义部分——定义常量、变量、游标、例外、复杂数据类型*/ begin /*执行部分——要执行pl/sql语句和sql语句*/ exception /*例外处理部分——处理运行各种错误...4.过程 过程用于执行特定操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out), 通过在过程中使用输入参数,可以将数据传递到执行部分; 通过使用输出参数,可以将执行部分数据传递到应用环境...; 在oracle调用存储过程: 第一种:call proc01(7654); 第二种:在plsql调用 SQL> begin 3 proc01(7654); 5 end;...end; 13. end; 3).如何调用包过程或是函数 当调用包过程或是函数时,在过程和函数前需要带有包名,如果要访问其它方案包,还需要在包名前加方案名。...调用存储过程 exec pkg_sal.update_sal('zhang',50000); 调用函数 1.plsql代码 DECLARE  v_income number; begin

53410

FORALL 之 SAVE EXCEPTIONS 子句应用一例

下面的示例来自一个实际应用,撇开原始表名与实际应用处理过程,仅仅通过简单示例来展现。      ...2、需要将数据库A一些表数据同步到数据库B对应目的表       3、如果同步过程中出现某条特定记录错误写该记录产生错误信息(含表名,主键)到日志表,并将其原表同步状态更新为N,否则更新为...Y       4、如果非由于INSERT产生错误信息,则要求写过程名及对应错误信息到日志表    如对于批量SQL较为熟悉,请直接阅读下文,否则,请参阅阅读本文所需要相关知识: 批量SQL之...-->为表emp_dest 添加约束用于在insert过程触发错误产生 scott@CNMMBO> alter table emp_dest add constraint ck_sal check(sal...scott@CNMMBO> @test_bulk_ins_err -->再次执行时发现只有empno号为1111记录被插入,而2222和3333都由于错误而未被同步目标表 PL/SQL procedure

77210

PLSQL --> 动态SQL调用包函数或过程

但是对于系统自定义包或用户自定包其下函数或过程,不能等同于DDL以及DML调用,其方式稍有差异。如下见本文描述。      ...有关动态SQL描述,请参考: PL/SQL --> 动态SQL PL/SQL --> 动态SQL常见错误 1、动态SQL调用包过程不正确调用方法 --演示环境 scott@USBO> select...cascade=>true) PL/SQL procedure successfully completed. 2、动态SQL调用包过程正确调用方法 --如下面这段plsql代码,我们在原代码基础上增加了...begin ..与end部分后,该plsql被成功执行 --注,字符拼接plsql,end; 之后不需要使用斜杠“/” scott@USBO> DECLARE 2 v_sql VARCHAR2...--下面这个示例拼接字串,调用了声明变量 --下面给出了错误提示,是由于我们漏掉了两个单引号,即需要使用转义字符,错误如下 scott@USBO> DECLARE 2 v_sql

1.5K20

Java程序员日常——存储过程知识普及

存储过程是保存可以接受或返回用户提供参数SQL语句集合。在日常使用,经常会遇到复杂业务逻辑和对数据库操作,使用存储过程可以进行封装。...2 减少网络流量 存储过程代码直接存储在数据库,用户通过名称进行调用,减小网络流量,加快执行速度。...6 (缺点)不易移植和修改 使用存储过程封装业务逻辑将限制应用程序可移植性;另外,如果更改参数或者返回数据以及类型,需要修改相关代码,比较繁琐。...(name,'001') 存储过程异常处理 为了提高存储过程健壮性,避免运行错误,建立存储过程时,应该包含异常处理部分。...在返回值上 存储过程返回值,可以有多个 函数返回值只有一个 调用方式上 存储过程调用方式有:exec、execute、语句调用 函数调用方式有:可以在函数、也可以直接在sql中使用,比如:

1.5K80

plsqlforall简单测试(r5笔记第63天)

可以参见下面的两个图,可以看到其实在pl/sql,可能很多时候我们所写pl/sql代码会在sql引擎和plsql引擎建进行上下文切换,这个过程还是很耗费时间。 ?...而forall却是相反,是提供一次上下文切换,会在forall过程中进行数据包装处理。一次发送给sql执行器去处理,大大减少了上下文切换时间。 ?...对于此,可以想象,如果cursor结果集很庞大,就很可能进行大量上下文切换,导致执行速度骤降。 我们来做一个简单实例来说明一下。...Elapsed: 00:00:00.48 然后就开始执行存储过程 [ora11g@oel1 plsql]$ cat a.sql create or replace procedure test_proc...; 执行过程中会看到进程占用了大量cpu资源。

724110

Oracle应用实战八(完结)——存储过程、函数+对象曹组

游标 在写java程序中有结果集概念,那么在pl/sql也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回多条数据。...(重点) 存储过程(Stored Procedure)是在大型数据库系统,一组为了完成特定功能SQL 语句集,经编译后存储在数据库,用户通过指定存储过程名字并给出参数(如果该存储过程带有参数)来执行它...存储过程是数据库一个重要对象,任何一个设计良好数据库应用程序都应该用到存储过程。...在触发器触发语句与伪记录变量值 触发语句 :old :new Insert 所有字段都是空(null) 将要添加数据 Update 更新以前该行值 更新后值 delete 删除以前该行所有字段都是空...测试 1)定义过程,并返回引用型游标 --定义过程,输入部门编号,返回部门下所有员工信息 create or replace procedure proc_cursor_ref(dno in number

1.8K60

Crontab定时执行Oracle存储过程

问题解决 想要解决这个问题,我想法是这样,把需要处理所有逻辑写在脚本里,然后设定一个Crontab,通过定时任务去执行。...一,首先看单纯在plsql是如何调用这个存储过程,我通过定义一个startdate和enddate,然后通过Oracle时间函数last_day计算出每月最后一天,开始第一天我是直接在月份拼接了...(startdate,enddate); end;  / 二,把上述逻辑写入到sh脚本,我们在相关路径新建一个文件call_proc_high_settle_rep_month.sh,通过执行sqlplus...,然后去执行上述内容 脚本内容如下: 其中sqlpluszh表示数据库账户名,*表示密码,zh10g表示数据库实例名,是你配置在tnsnames.ora连接名。...echo "get Finished" 三、手工执行了这个脚本,发现没错误,可以执行

1.7K20

JavaSE(十一)之异常处理详解

只有finally执行完成之后,         才会回来执行try或者catchreturn或者throw语句,如果finally中使用了return或者throw等终止方法语句,就不会跳回执行...若有一个catch语句匹配到了,执行该catch异常处理代码,就不再尝试匹配别的catch了。     ...匹配原则:如果抛出异常对象属于catch子句异常类,或者属于该异常类子类,认为生成异常对象与catch捕获异常类型相匹配。   ...这个过程将继续直到一个catch语句被匹配成功,或者是直到所有的嵌套try语句被检查完毕。如果没有catch语句匹配,Java运行时系统将处理这个异常。  ...如果发现了匹配,控制转向该语句;如果没有发现,次包围try来检查,以此类推。如果没有发现匹配catch,默认异常处理程序中断程序执行并且打印堆栈轨迹。

1.2K90

Oracle基础–PLSQL编程基本语法

1.PL/SQL(Procedure Language/SQL) 2.PLSQL是Oracle对sql语言过程化扩展(类似于Basic) 3.指在SQL命令语言中增加了过程处理语句(如分支、循环等),...这是一个可选部分,并定义了程序要使用所有变量,游标,子程序和其他元素。 可执行部分:此部分包含在关键字BEGIN和END之间,这是一个强制性部分。...这是一个可选部分,它包含处理程序错误异常。...2.PLSQL编程语言大小写是不区分 三、HELLO WORD 打印HELLO WORD 其中DBMS_OUTPUT为oracle内置程序包,相当于JavaSystem.out,而PUT_LINE...在PL/SQL编程,每个语句以“;”结尾。使用BEGIN和END可以将PL/SQL嵌套在其他PL/SQL 。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

75410

使用 DBMS_PROFILER 定位 PLSQL 瓶颈代码

而对于PL/SQL代码而言,既有SQL代码,又有PL/SQL代码,仅仅使用10046事件是远远不够,因为可能SQL时间很短,而整个包或过程执行时间N久,而且包或过程又嵌套有其他包,过程,函数。...尽管没有工具可以直接作用于PL/SQL代码进行优化,但借助于PL/SQL PROFILER来定位你代码哪些部分是性能瓶颈就已经达到了事半功倍效果。...剖析schema执行脚本proftab.sql(也可以使用一个账户创建然后创建同义词并授权给public) --首次使用时执行,会创建相应表存储profiler信息,即plsql_profiler_runs...b、执行你需要剖析代码(包,过程,匿名等) scott@USBO> exec literals; c、停止profiler,调用过程stop_profiler scott@USBO> execute...execute immediate耗用49s,也即是说,如果能够降低该行代码时间,整个性能会大幅提升 3、使用PROFILER剖析PLSQL代码(法二) --这个方法实际也没有太多变化,只不过将需要剖析代码和启用

73310

PLSQL基础语法

有时候我们需要对数据库数据进行一些稍微复杂操作,而且这些操作都是一次性,用完之后就不再用了。 用存储过程的话就太麻烦,而且浪费,用完了还要去删除。而单个SQL无法满足需求。...这时候用一下SQL语句就可以了。 如果你用是Oracle数据库,那么你就可以用PL/SQL(Procedure Language/SQL),即过程化查询语言。这是第三代语言。...但如果是在MYSQL/SQLSERVER数据库,那PL/SQL就无法使用(PL/SQL是属于Oracle过程查询语言)。...如果你要在MYSQL/SQLSERVER实现复杂逻辑查询,那你只能通过编写存储过程实现。 下面对PL/SQL常用一些基础知识进行讲解。...一般情况下,我们可以在存储过程异常处理模块中将出错信息保存到特定系统表,这样我们就可以根据日志记录得知执行错误

2.5K110

Oracle总结【PLSQL学习】

PLSQL介绍 PLSQL是Oracle对SQL99一种扩展,基本每一种数据库都会对SQL进行扩展,Oracle对SQL扩展就叫做PLSQL… SQL99是什么 (1)是操作所有关系型数据库规则...程序:;号表示每条语句结束,/表示整个PLSQL程序结束 PLSQL与SQL执行有什么不同: (1)SQL是单条执行 (2)PLSQL是整体执行,不能单条执行,整个PLSQL结束用/,其中每条语句结束用...IS SELECT 语句; 使用无参光标cursor,查询所有员工姓名和工资【如果需要遍历多条记录时,使用光标cursor,无记录找到使用cemp%notfound】 declare -...findEmpNameAndSalAndJob(编号),查询7788号员工姓名,职位,月薪,返回多个值,演示out用法 创建过程:在过程参数,默认值是IN,如果是输出的话,那么我们要指定为OUT...income := findEmpIncome(7369); dbms_output.put_line(income); END;/ 如果是=号,那么就会出现以下错误: [2017-07

2.3K70

Web-第二十四天 Oracle学习【悟空教程】

2.别名用法 在查询结果列可以使用别名 Select 列名 别名,列名别名,... from emp; 别名,有没有双引号区别就在于别名中有没有特殊符号或者关键字。 ?...序列 在很多数据库中都存在一个自动增长列,如果现在要想在oracle 完成自动增长功能, 只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。...在写java程序中有集合概念,那么在pl/sql也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回多条数据。...'); end; 十二、存储过程 存储过程(Stored Procedure)是在大型数据库系统,一组为了完成特定功能SQL 语句集,经编译后存储在数据库,用户通过指定存储过程名字并给出参数(如果该存储过程带有参数...3.实现过程调用 1.调用过程 1.过程定义 --统计年薪过程create or replace procedure proc_countyearsal(eno in number,esal out

1.8K20

PLSQL Developer几个可能隐患

但是在PLSQL Developer,是可以设置DML语句自动提交,在"Tools-Preferences-SQL Windows",有个AutoCommit SQL,默认是空,如果勾选,执行DML...如果设置了AutoCommit,相当于直接提交,此时要回滚,就得手工执行该操作逆向操作,并不是所有场景都可以很快执行。...黑客在PLSQL DeveloperAfterConnect.sql文件中加入了勒索代码,然而此文件在官方软件为空文件,该勒索病毒就是利用了这个文件注入病毒代 码,在用户连接数据库后立即执行,并在告警日志出现自动任务执行错误...借助PLSQL DeveloperAfterConnect.sql脚本,在Oracle执行了一些特定JOB、存储过程和触发器,实现勒索机制。...3.删除sys.tab$,执行提交。 4.执行检查点事件,强制将脏,写入数据文件。 5.

2K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券