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

如何找到抛出ORA-00933错误SQL

,明显是应用写的SQL出现了错误导致的,但是因为未将出错的SQL打印到日志中,所以不知道究竟是什么SQL出错了,由于逻辑中涉及到很多的SQL,逐个排查,非常耗时。...ORA-00933,意思是“SQL command not properly ended”,明显是SQL的语法出现错误,但是现在的问题,就是如何找到错误SQL?...(); PL/SQL procedure successfully completed....,碰巧解析错误的会执行多次,可能瞬时导致磁盘空间压力,因此Oracle中任何的event,我们在使用前,一定要知道他的副作用,避免带来影响。...其中一项,就是应用执行错误SQL语句需要打印到应用日志中,包括SQL原文、报错信息、参数等,一方面为监控报警提供数据,另一方面便于问题的排查。

2.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle PLSQL中异常高级特性

在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛出一堆难以理解的...本文只介绍3中PL/SQL异常的三种高级形态,用于解决Oracle内置异常过少,很多时候不能够满足实际的使用需求。...当我们输入存在的员工编号时,程序能够正常返回结果;如果输入不存在ID,则select into语句会抛出没有返回行,进而使程序进入异常处理部分(本部分为举例),程序同样执行成功;当输入一个负数时,if条件语句就会进入到...PL/SQL procedure successfully completed.  - 这下抛出错误就容易理解多了。...在异常处理部分,我们使用了一个PL/SQL语句块来处理这个错误,声明两个变量,并将SQLCODE和SQLERRM以字面值赋值的方法给这两个变量。

62610

PLSQL --> 异常处理(Exception)

Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。...1.预定义异常 ORACLE定义了他们的错误编号和异常名字,常见的预定义异常处理Oracle常见的错误 NO_DATA_FOUND SELECT ... INTO ......二、异常处理 PL/SQL中,异常处理按个步骤进行: 定义异常 抛出异常 捕获及处理异常 a.定义异常 exception_name EXCEPTION; b.抛出异常 RAISE exception_name...错误没有任何关系,有开发人员为特定情况所定义的例外 下面的例子中当输入empno为时,尽管该雇员编号不存在,但PL/SQL代码并未给出适当的提示 scott@ORCL> declare 2 e_integrity...从Oracle 10g开始,在编写PL/SQL子程序之前开发人员可以激活警告检查.

1.4K10

SQL基础--> 序列(SEQUENCE)、同义词(SYNONYM)

=============================== 一、序列 是一个Oracle对象,提供唯一的数字,在需要时根据指定的增量值来递增,通常用于产生主键值 类似于SQL server中的IDENTITY...序列缓存与否(默认NOCACHE) 关于创建序列,使用序列所需要的权限请参考:Oracle 用户、对象权限、系统权限 --创建一个序列 SQL> CREATE SEQUENCE my_seq...查看序列当前的有效值 --当第一次使用序列时指定了currval列,结果出现如下错误提示 SQL> SELECT my_seq.currval FROM dual; SELECT my_seq.currval...--出现了下面的错误,怀疑是授权的问题 SQL> INSERT INTO robinson.dept(deptno,dname,loc) 2 VALUES(my_seq.currval,'Customers...SQL> DROP SEQUENCE my_seq; Sequence dropped 8.创建序列的详细语法:CREATE SEQUENCE 二、同义词 是Oracle对象的别名,使用同义词访问相同的对象

1.1K20

Oracle数据库,浅谈PLSQL异常处理

众所周知,程序的错误一般情况下分为两类:编译错误和运行时错误。其中运行时错误被称为异常。PL/SQL语句块中处理异常的部分即为异常处理部分。在异常处理部分,可以指定当特定异常发生时所采取的动作。...本文我们就来聊一聊PL/SQL异常处理的那些事儿。 ? PL/SQL有两种类型的异常:内置异常和用户自定义异常。其中,内置异常又分为预定义异常和非预定义异常。...当输入的员工编号存在时,输出员工姓名,当员工编号不存在时,会有运行错误。...PL/SQL procedure successfully completed....这时可以通过EXCEPTION_INIT编译指令进行错误代码和名称的关联。当PL/SQL语句块的可执行部分出现某个运行错误时,会抛出不同类型的异常。

69920

解决导入过程中出现的ORA-02289错误

看看ORA-02298的错误描述,因为存在独立的字节点记录,导致生效约束操作报错, ? 通俗一些,就是子表外键对应的主表主键/唯一约束键值不存在,所以此时无法生效外键约束。...主表不存在id=2这条记录,但子表中存在外键字段id_a=2的这条记录,只是由于disable了约束所以才可以insert,但实际此时是无法enable约束,这和上面执行impdp的效果相同, ?...使用如下SQL,可以根据子表名称和子表外键约束名称,自动拼接出需要删除子表非法数据的SQL语句,复制出来继续执行就行, SELECT ' delete from '  || a.table_name...脚本, https://github.com/bisal-liu/oracle/blob/832c9c34c068981405a68bae55de885d78cf7bca/solve_illegal_constraint_data...解决ORA-02289错误,要理解其本质,即子表外键值存在不属于主表主键/唯一约束键的情况。 2. 一种方法是手工删除子表中存在的非法数据,保证主子表关系正确。 3.

1.4K40

Oracle-PLSQL学习

本文链接:https://blog.csdn.net/wangtongxue123456/article/details/79681868 PLSQL PL/SQL 基础语法 PL/SQL 的程序结构...IF 语句 循环语句 第一种 while 第二种 loop 第三种 FOR 光标 光标的语法 光标的属性 光标数的限制 带参数的光标 例外(错误) 系统列外 自定义列外 PLSQL PL/SQL 是...Oraclesql 语言的过程化扩展, 指在sql 命令语言中增加了过程处理语句(如分支、循环等),使sql语言具有过程处理能力 PL/SQL 基础语法 PL/SQL 的程序结构 declare...; end; 光标的属性 %found 光标取到值为true %notfound 光标取不到值true %isopen 判断光标是否打开 %rowcount 影响的行数 光标数的限制 默认情况下,oracle...) Timeout_on_resource (在等待资源时发生超时) 自定义列外 定义变量,类型是 exception 使用raise抛出自定义列外 --自定义例外: set serveroutput

79530

Oracle SQL 异常处理

.'); end;  用户自定义异常就是用户定义一个异常情况,遇到这种情况再对这种情况进行处理 因为用户定义的异常不一定是Oracle返回的系统错误,系统不会自动触发,需要在声明部分定义。...而用户自定义异常以及预定义异常不回终止程序,但会终止该 PL/SQL 代码块,所以一个存储过程中可以有多个 PL/SQL 代码块。...关于异常的语法及定义: 什么是异常: PL/SQL用异常和异常处理器来实现错误处理 Oracle中出现错误的情形通常分为编译时错误(compile-time error)和运行时错误(run-time...异常在PL/SQL执行过程中很可能出现 对异常如果不进行处理,异常可能会中断程序的运行 捕获异常的规则: 在异常部分WHEN 子句没有数量限制 当异常抛出后,控制无条件转到异常处理部分 EXCEPTION...编写PL/SQL块,使用SELECT语句将管理者编号为空的员工的姓名及工作编号显示出来,如果符合条件的员工多于一人,则返回字符串“最高管理者人员过多!”

60310

oracle补充

drop index teachername; 序列 序列Oracle提供的用于产生一系列唯一数字的数据库对象。...创建序列要有序列权限 grant create sequence,select any sequence to 用户名 --dba权限包括以上权限,所以不用重新赋予 序列的创建 SQL例子:.../SQL块 块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是在编写块,要完成简单的功能,可能需要一个块,复杂的功能,要一个块中嵌套另一个块 PL/SQL块由三个部分组成:定义部分.../*异常处理部分——处理运行的各种错误*/ end; 实例1:只包括执行部分的pl/sql块 /*只要涉及输入就需要打开输出选项*/ set serveroutput on --打开输出选项...PL/SQL函数 函数是命名了的、存储在数据库中的PL/SQL程序块。

3.1K30

Oracle-PLSQL基础

概述 PL/SQL简介 pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句...pl/sql是面向过程的语言。 ? 不同数据库的SQL扩展 PL/SQLOracle数据的SQL扩展。 SQL/PL 是DB2数据库的SQL扩展。...---- PL/SQL块 块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上 就是编写pl/sql块。...---- PL/SQL基础语法 ---- 程序结构 declare 说明部分(变量说明\游标声明\例外说明) begin 语句序列(DML语句) exception 例外处理语句...oracle会自动启动一个pmon(process monitor)的一个进程 --将pl/sql程序中未关闭的资源释放 --所以 close c_emp; 还是会执行的 close c_emp

1.7K20

Oracle PLSQL随堂笔记总结

1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle...的pl/sql的概念 2.掌握pl/sql编程技术(过程、函数、触发器) pl/sql是标准sql语句的扩展 简介 1.过程、函数、触发器都是由pl/sql编写...2.过程、函数、触发器是在oracle中 3.pl/sql是非常强大的过程语言 4.过程、函数等可以在java程序被调用 学习必要性:.../SQL: 数字或值错误 : 字符串缓冲区太小 当ename为MARTIN时,会报上述错误,解决方法,定义v_ename时,v_ename emp1.ename%type; ②...实例:编写一个存储过程,输入一个名字,工资加1000,如果没有该人,抛出自定义例外。 8.oracle的视图 视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的行和列数据。

2K40

【DB笔试面试445】Oracle中的异常可以分为哪几类?

如果PL/SQL程序块一旦产生异常,而程序并没有指出如何处理,那么程序就会自动终止运行。...(3)当异常处理结束后,Oracle就将处理权交给调用者。结束PL/SQL块的运行。 Oracle将异常分为预定义异常、非预定义异常和自定义异常三种。...1、预定义异常(Predefined) 当PL/SQL应用程序违反了Oracle规定的限制时,就会隐含地触发一个内部异常,这就是预定义异常。...预定义异常用于处理常见的Oracle错误,对这种异常情况的处理,无需在程序中定义,由Oracle自动将其触发。它们全部放在PL/SQL自带的标准包中,这样程序员就无需再次定义了。...使用预定义异常只能处理系统预定义的20多个Oracle错误,而当使用PL/SQL开发应用程序时,可能会遇到其它的一些Oracle错误。例如,在PL/SQL块中执行DML语句时,违反了约束规定等等。

1.7K10
领券