首页
学习
活动
专区
工具
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...-->如果我们去掉外层查询没有类似的错误发生 -->如此这般,难道是值由子查询到外层的时候产生了变异?

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

    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列有约束限制,只允许出现C或E值,而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

    79710

    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.5K20

    【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.8K10

    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.6K10

    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);   刷新流的输出缓冲区。当输出缓冲区被填满时,缓冲区将被自动刷新。

    2.1K60

    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.4K40

    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.8K20

    快速熟悉 Oracle AWR 报告解读

    在缓冲区中获取Buffer的未等待比率。Buffer Nowait的这个值一般需要大于99%**。否则可能存在争用,可以在后面的等待事件中进一步确认。...数据块在数据缓冲区中的命中率,通常应在95%以上。 Redo NoWait 表示在Log 缓冲区获得Buffer的未等待比例。如果太低可考虑增加Log Buffer。...Library Hit 表示Oracle从Library Cache中检索到一个解析过的SQL或PL/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

    4.1K32

    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.6K20

    如何使用MySQLTuner优化MySQL性能

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

    2K50

    OB 运维 | 一则 JDBC 访问 LOB 类型数据报错案例

    1故障背景 在某客户现场做 OceanBase 测试时,遇到一则报错如下。...(conn=499974) ORA-06502: PL/SQL: numeric or value error: no data found at oceanbase.DBMS_LOB.READ , line...通过一个无限循环重复调用存储过程取读取数据,直到读取完毕或遇到异常。 在处理数据时,它会检查数据长度是否超过了 maxLength,并处理可能的字符编码问题。...为什么 OFFSET 传值是 15008? 第一次 offset 是1,最后一次是 15008 (超出了业务实际字段长度值 15007 一个字节),这里的越界是符合预期的。...要查询 LOB 类型业务数据时,驱动先给你返回一个 lob locator(一般不携带实际数据),然后要读实际数据时,驱动再调用 readFromServer 方法发一个 dbms_lob.read

    8610

    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 块的声明部分定义异常

    67610
    领券