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

ORA-06502 assigning values from SQL to PLSQL variables

最近SQL查询返回的结果给PL/SQL变量出现ORA-06502错误。...这个错误的描述是ORA-06502: PL/SQL: numeric or value error: character string buffer too small....1、问题描述 --出现问题是在一个package里,有两个参数游标,一个父游标,一个子游标,当父游标输出的结果传递给子游标提示太大 --父游标原sql语句较长,且复杂,为简化描述下面构造其环境...-->使用下面的查询输出结果时报ora-06502错误 -->查询语句也比较简单,取表t的dt列的最小,在外层查询赋值给变量 -->外层的子查询貌似画蛇添足,纯粹是模拟原有环境 goex_admin...-->如果我们去掉外层查询没有类似的错误发生 -->如此这般,难道是由子查询到外层的时候产生了变异?

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

FORALL 之 SAVE EXCEPTIONS 子句应用一例

FORALL 语句 批量SQL之 BULK COLLECT 子句 PL/SQL 集合的初始化与赋值 PL/SQL 联合数组与嵌套表 PL/SQL 变长数组 PL/SQL --> PL/SQL...: PL/SQL: numeric or value error: character string buffer too small 上面的错误提示是由于我们声明的emp_tab嵌套表基于源表,因此出现数据缓冲太小错误...上面由于源表的is_sync列有约束限制,只允许出现CE,而bulk_error中是更新为N,所以给出错误提示 我们来看看err_log_tbl,两条源表到目标表在非insert产生的错误信息已经被记录到日志表...scott@CNMMBO> @test_bulk_ins_err -->再次执行时发现只有empno号为1111的记录被插入,而2222和3333都由于错误而未被同步的目标表 PL/SQL procedure...使用了通过标识错误异常位置的debugpos变量来便于查找那个地方那几行代码引发异常 5、注意处理error信息,通过TO_CHAR (emp_tab (SQL%BULK_EXCEPTIONS (i

77210

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编写...当定义一个触发器,必须要指定触发的事件和触发的操作,常用的触发事件包括insert,update,delete语句,而触发操作实际就是一个pl/sql块。...-06502: PL/SQL: 数字错误 : 字符串缓冲区太小 当ename为MARTIN,会报上述错误,解决方法,定义v_ename,v_ename emp1.ename...在编写pl/sql,可以使用游标变量(ref_cursor)和对象类型变量(ref_obj_type)两种参照变量类型。

2K40

PLSQL编程基础简介及实践

2、客户端  可以在客服端执行本地的PL/SQL通过向服务器发送SQL命令激活服务器端来运行PL/SQL程序。 3、支持过程化  可嵌入SQL语句,及使用各种类型的条件分支语句和循环语句。...为null,null||字符串字符串 3)boolean类型的只能取 true false null3个 9、流程控制语句 1)语句分类:控制语句(IF)、循环语句(LOOP 、EXIT) 顺序语句...2、异常情况(exception)指在正常执行过程中未预料的事件,程序块的异常处理预定义错误和自定义错误,运行PL/SQL一旦产生异常而没有指出如何处理,就会自动终止整个PL/SQL块的运行。...: sqlcode:错误编号 如:6502 sqlerrm:错误消息 如:ORA-06502: PL/SQL: 数字错误 : character string buffer too small (<...当调用函数后,不指定入参的,就使用入参的默认

1.4K20

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

如果PL/SQL程序块一旦产生异常,而程序并没有指出如何处理,那么程序就会自动终止运行。...1、预定义异常(Predefined) 当PL/SQL应用程序违反了Oracle规定的限制,就会隐含地触发一个内部异常,这就是预定义异常。...预定义异常用于处理常见的Oracle错误,对这种异常情况的处理,无需在程序中定义,由Oracle自动将其触发。它们全部放在PL/SQL自带的标准包中,这样程序员就无需再次定义了。...ORA-06500 STORAGE_ERROR 内存不够内存被破坏触发的内部错误 ORA-06502 VALUE_ERROR 赋值操作,变量长度不足,触发该异常 ORA-06504 ROWTYPE_MISMATCH...使用预定义异常只能处理系统预定义的20多个Oracle错误,而当使用PL/SQL开发应用程序时,可能会遇到其它的一些Oracle错误。例如,在PL/SQL块中执行DML语句,违反了约束规定等等。

1.7K10

PLSQL --> 异常处理(Exception)

Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误警告,则会触发异常处理。...,没有找到数据 DUL_VAL_ON_INDEX 试图在一个有惟一性约束的列上存储重复 CURSOR_ALREADY_OPEN 试图打开一个已经打开的游标 TOO_MANY_ROWS SELECT...,查询的结果是多值 ZERO_DIVIDE 零被整除 2.非预定义异常 ORACLE为它定义了错误编号,但没有定义异常名字。...message:用于指定错误消息,且消息长度不能超过k,超出部分将被截取 可选参数true,false:默认为false,会替换先前的所有错误。...scott@ORCL> print g_sal G_SAL ---------- 300 五、PL/SQL编译警告 1.PL/SQL警告的分裂 SEVERE: 用于检查可能出现的不可预料结果错误结果

1.4K10

Oracle使用总结之异常篇

1.2.2 在声明部分引发异常错误 1.3 异常错误处理编程 1.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误未预料到的事件...当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。...1.1 异常处理概念 异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理,程序就会自动终止整个程序运行.../SQL块的ORACLE错误PL/SQL代码的某操作引起的错误,如除数为零内存溢出的情况。...用户自定义异常由开发者显示定义,在PL/SQL块中传递信息以控制对于应用的错误处理。 每当PL/SQL违背了ORACLE原则超越了系统依赖的原则就会隐式的产生内部异常。

2K60

OTL技术应用

语句PL/SQL存储过程                                            otl_connect& db, // OTL数据库连接对象                       ...语句PL/SQL存储过程                                otl_connect& db,// OTL数据库连接对象             const int implicit_select...默认情况下,该标志被置1,即当输出缓冲区刷新,当前的事务被自动提交。   注意流的auto_commit标志和数据库的自动提交模型没有任何关系。...默认情况下auto_flush的为true, 即如果缓冲区出现脏数据则在流的析构函数中刷新缓冲区。如果自动刷新标志被关闭,则需要使用close()方法或者flush()方法对流进行刷新。  ...注意该函数仅仅能够设置流的析构函数中是否自动刷新,并不是通常意义上的缓冲区刷新。 (5)voidflush(void);   刷新流的输出缓冲区。当输出缓冲区被填满缓冲区将被自动刷新。

2K60

ORA-01455报错的问题探究

昨天同事说有个应用执行某个特殊操作时会报:ORA-01455: converting column overflows integer datatype 网上包括MOS上对1455报错介绍更多的是在做exp导出可能出现这个问题...1087122.1介绍: “当创建使用初始超过10位的序列,可能会出现如下问题: ORA-01455: converting column overflows Integer datatype ORA...-06502 PL/SQL: Numeric or value error: number precision too large APP-01564: Oracle error 1455 in fdsgsv...针对这个报错,仔细询问了下,是执行SELECT语句,带一个特殊的过滤条件时会报这个错误,其它的过滤条件则不会报错,说明很可能是这个特殊过滤条件对应的记录中有些小问题,经过同事的排查,确定是其中一条记录的某个字段...,Oracle中定义的是NUMBER(10)类型,实际是8开头的10位数,但应用程序中使用的getInt()获取,Integer的取值是-2^15-2^15-1,显然该超过了Integer允许的最大

1.2K40

Oracle-PLSQL基础

1、如何使用if语句 2、接收一个键盘输入(从键盘上获取的都是字符串) */ set serveroutput on ; --接收一个键盘输入 --num :地址,含义是:在该地址上保存了输入的...,获取地址上对应的,需要使用 & accept num prompt'请输入一个数字'; declare --定义变量保存用户从键盘输入的数字 这里并没有对异常进行处理,输入字符串,会抛异常...、删除、更新单行查询操作成功 SQL%NOTFOUND 布尔型 与SQL%FOUND属性返回相反 SQL%ISOPEN 布尔型 DML执行过程中为真,结束后为假 DECLARE...- No_data_found 没有找到数据 - Too_many_rows select..into语句匹配多个行 - Zero_Divide 被零除 - Value_error 算数转换错误...,算术错误比如说负数开平方 - Timeout_on_resource 在等待资源发生超时,常见于分部署数据库。

1.7K20

快速熟悉 Oracle AWR 报告解读

缓冲区中获取Buffer的未等待比率。Buffer Nowait的这个一般需要大于99%**。否则可能存在争用,可以在后面的等待事件中进一步确认。...数据块在数据缓冲区中的命中率,通常应在95%以上。 Redo NoWait 表示在Log 缓冲区获得Buffer的未等待比例。如果太低可考虑增加Log Buffer。...Library Hit 表示Oracle从Library Cache中检索到一个解析过的SQLPL/SQL语句的比率,当应用程序调用SQL存储过程,Oracle检查Library Cache确定是否存在解析过的版本...要确保Latch Hit>99%,否则意味着Shared Pool latch争用,可能由于未共享的SQL,或者Library Cache太小,可使用绑定变更调大Shared Pool解决。...sequence load elapsed time 序列争用 PL/SQL compilation elapsed time PL/SQL对象编译的耗时 connection management call

3K31

oracle的操作

忽略该子句,缺省为1。 START WITH:指定生成的第一个序列号。在升序时,序列可从比最小大的开始,缺省为序列的最小。.../SQL PL/SQL是Oracle数据库对SQL语句的扩展,增加了编程语言的特点....数据操作和查询语句被包含在PL/SQL代码的过程性单元中,经过逻辑判断、循环等操作完成复杂的功能或者计算 2.PL/SQL的优点 使一组语句功能形成模块化程序开发 使用过程性语言控制程序结构 可以对程序中的错误进行处理...– 可选部分 程序出现异常,捕捉异常并处理异常 END; – 必要部分 4.PL/SQL块例子: 示例1: DECLARE v_dept_id employees.department_id...end funname ; 创建一个PL/SQL函数,只返回计算的结果,函数不能像存储过程那样,对数据库进行操作。

1.5K20

如何使用MySQLTuner优化MySQL性能

根据MySQL的文档,对于具有256MB(更多)RAM和多表的服务器,建议设置为64M。具有128MB RAM和更少表的服务器可以设置为默认16M。资源和表格更少的网站可以将此设置得更低。...如果此设置得太小,您将在错误日志中收到错误。 thread_stack 该包含每个线程的堆栈大小。...MySQL认为thread_stack变量的默认足以正常使用; 但是,如果thread_stack记录有关的错误,可以增加。...当连接断开,线程被破坏。否则,此设置要在缓存中存储的未使用线程的数量,直到它们需要用于连接。...在设置此数字之前,最好考虑过去的最大连接数,因此您将在该较大数字和max_connections之间有一个缓冲区。请注意,这并不表示您网站上的最大用户数量; 而是显示同时发出请求的最大用户数。

1.8K50

Oracle11g全新讲解之PLSQL编程

执行如下命令即可 set serveroutput on; 1. dbms_output用法   dbms_output包主要用于调试pl/sql程序,或者在sql*plus命令中显示信息(displaying...message)和报表,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种目的使用dbms_output包来显示一些信息。...put_line:不用多说了,输出字符 new_line:作为一行的结束,可以理解为写入buffer的换行符 get_line(value, index):获取缓冲区的单行信息 get_lines(...语句   动态 SQL 是指在PL/SQL程序执行时生成的SQL 语句。...,控制权转移到PL/SQL 块的异常处理部分 异常有两种类型 预定义异常 - 当 PL/SQL 程序违反 Oracle 规则超越系统限制隐式引发 用户定义异常 - 用户可以在 PL/SQL 块的声明部分定义异常

60310

Oracle-PLSQL学习

本文链接:https://blog.csdn.net/wangtongxue123456/article/details/79681868 PLSQL PL/SQL 基础语法 PL/SQL 的程序结构...IF 语句 循环语句 第一种 while 第二种 loop 第三种 FOR 光标 光标的语法 光标的属性 光标数的限制 带参数的光标 例外(错误) 系统列外 自定义列外 PLSQL PL/SQL 是...Oracle 对 sql 语言的过程化扩展, 指在sql 命令语言中增加了过程处理语句(如分支、循环等),使sql语言具有过程处理能力 PL/SQL 基础语法 PL/SQL 的程序结构 declare...1.如何使用if语句 2.接收一个键盘输入(字符串) */ set serveroutput on --接受一个键盘输入 --num:地址,含义在该地址上保存了输入的 accept num prompt...SYS.DBMS_OUTPUT.PUT_LINE('其他例外'); end; Too_many_rows (select … into 语句匹配多个行) Zero_Divide (被零除) Value_error (算术转换错误

79030
领券