精华内容
下载资源
问答
  • Oracle: ORA-06512:字符串缓冲区太小

    万次阅读 2018-11-22 17:55:52
    问题现象:ORA-06512:字符串缓冲区太小 报错截图 解决思路: 出现以上报错后点击"是",plsql会直接定位到以下的程序报错位置; plsql提示的报错位置 由于是查询语句,我现在需要查出在哪条数据...

    问题现象:ORA-06512:字符串缓冲区太小

    报错截图

    解决思路:

    出现以上报错后点击"是",plsql会直接定位到以下的程序报错位置;

    plsql提示的报错位置

    由于是查询语句,我现在需要查出在查哪条数据时发生的这个报错,便于进行debug,

    一、

    在报错行之前使用

    dbms_output.put_line("v_accoid: " || v_accoid);

    在Output窗口中输出v_accoid,

    二、

    编译后再次运行报错,应该是dbms_output包的缓冲区太小。用自己写的sp_putline()(该函数在我以前的博文有分享出来)替换之。

    三、

    成功查出出错数据

    展开全文
  • Oracle: ORA-06512:字符串缓冲区太小 报错的意思很简单,字符串缓冲区小了,原因: 1-字符串给设定的确实很小,需要扩大。 2-字符串大小本身正常,只是因为书写错误,导致读取字符串出现问题而报错,需要修改SQL。 ...

    Oracle: ORA-06512:字符串缓冲区太小

    报错的意思很简单,字符串缓冲区小了,原因:

    1-字符串给设定的确实很小,需要扩大。
    2-字符串大小本身正常,只是因为书写错误,导致读取字符串出现问题而报错,需要修改SQL。

    我这里是编写存储过程中,一不小心将拼接 V_SQL 的查询SQL字符串写错。

    
    --本该是这样
    V_SQL = SQL_1 || 参数名 || SQL_2;
    
    --错误写法,报错
    V_SQL = SQL_1 + 参数名 + SQL_2;
    
    

    大意。

    展开全文
  • oracle wm_concat 字符串缓冲区太小

    千次阅读 2017-03-06 14:44:23
    数据少的时候wm_concat(字段名)可以正常拼接出字符串,数据多的时候就会报错(如图片所示) 原sql语句是: select t2.districtname, t.diagnosis_name, t3.cn, t3.names  from T_DISEASE_DIAGNOSIS t  inner ...

    数据少的时候wm_concat(字段名)可以正常拼接出字符串,数据多的时候就会报错(如图片所示)

    原sql语句是:

    select t2.districtname, t.diagnosis_name, t3.cn, t3.names
      from T_DISEASE_DIAGNOSIS t
     inner join t_sys_district t2
        on t.district_id = t2.districtid
     inner join (select t2.diagnosis_name,
                        count(*) cn,
                        wm_concat(t.personnel_name) names
                   from t_exam t
                  inner join t_exam_disease t2
                     on t.exam_code = t2.exam_code
                  inner join t_disease_diagnosis t30
                     on t2.diagnosis_name = t30.diagnosis_name
                  where t.RECORD_STATUS = 'Normal'
                  group by t2.diagnosis_name) t3
        on t.diagnosis_name = t3.diagnosis_name
     order by t2.districtorder, t.diagnosis_order
    修改后的sql语句是:

    select t2.districtname, t.diagnosis_name, t3.cn, t3.names
      from T_DISEASE_DIAGNOSIS t
     inner join t_sys_district t2
        on t.district_id = t2.districtid
     inner join (select t2.diagnosis_name,
                        count(*) cn,
                      RTRIM(XMLAGG(XMLPARSE(CONTENT personnel_name || ',' WELLFORMED))  .GETCLOBVAL(), ',') names
                   from t_exam t
                  inner join t_exam_disease t2
                     on t.exam_code = t2.exam_code
                  inner join t_disease_diagnosis t30
                     on t2.diagnosis_name = t30.diagnosis_name
                  where t.RECORD_STATUS = 'Normal'
                  group by t2.diagnosis_name) t3
        on t.diagnosis_name = t3.diagnosis_name
     order by t2.districtorder, t.diagnosis_order

    展开全文
  • ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析 解决方法:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析

    ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析

    解决方法:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析
     

    展开全文
  • 报错目前可以肯定的是,拼接的字符串超过oracle定义的上限。 plsql中varchar2长度上限是4000字节 报错语句定位到下面的这句: 我这里的p_zbdcdyh是存储过程的输出参数,故是默认数据库的字符串varchar2的大小。 p_...
  • 今天在编写存储过程,出现字符串缓冲区太小, begin EXECUTE IMMEDIATE '这里是超过5000的SQL字符串' 这里执行是没有问题的。 问题来了,因为我的判断和参数过多,所以传值不想用。 改写成: begin v_str?...
  • oracle中wm_concat 字符串缓冲区太小

    千次阅读 2020-06-19 15:21:15
    在Oracle数据库中,用wm_concat函数拼接的字符串不能超过4000字节,超过此值,就会出现报错 因为我们可以用如下方法来进行解决 select XMLAGG(XMLELEMENT(E, p_codes || ',')).EXTRACT('//text()').getclobval() ...
  • oracle存储过程执行报错:数字或值错误:字符串缓冲区太小。 当时第一反应是存储过程出错了,但是没有第一想到导致出现问题的地方,因为是在生产环境,所以没有去调试该存储过程,而是将其里面的每一段代码单独调...
  • pl/sql 报字符串缓冲区太小

    千次阅读 2018-12-07 14:33:39
    create or replace procedure esb_proc_trans_table (p_currdate in date default NULL) is --全局参数 v_curr_date date; v_table_name varchar(30); v_part_name varchar(30); v_last_space varchar(30);...
  • -- 场景: --在Oracle 11g 环境 select WM_SYS.WM_CONCAT(id...ORA-06502: PL/SQL: 数字或值错误:字符串缓冲区太小 ORA-06512: 在"WMSYS.WM_Concat_impl",line30   --检查原因: WMSYS.WM_Concat返回的是varcha
  • ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小错误分析   1. 问题起因 最近在进行oracle的一些操作时,总会遇到这个错误: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小,错误如下: [sql] ...
  • PL/SQL Procedure运行报:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小Cause:很有可能是你定义变量长度太小,当把一个很大的值付给这个小的变量的时候就会报错ORA-06502ExampleDECLARE v VARCHAR(10);...
  • ORACLE字符串缓冲区太小解决方案

    千次阅读 2013-07-24 16:16:00
    今天遇到一个字符串缓冲区太小的问题的,起因在于使用了ORACLE的聚合拼接函数WM_CONCAT,报错信息如下: ### Error querying database. Cause: java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 : 字符串...
  • numeric or value error: character string buffer too small(数字或值错误:字符缓冲区太小) 经查明,wm_concat函数拼接的字符串不能超过4000字节,否则会报错。 解决方案: 更改sql如下: select XMLAGG...
  • 可能出现一个问题,那就是如果合并的字段长度超过4000个字节,SQL语句会报错,ORA-06502 字符串缓冲区太小,即使你用substr()截取也是这样的错误。其实就是一个行转列的过程。那怎么解决这个问题,来做个试验: ...
  • 原文地址:https://blog.csdn.net/qyq88888/article/details/52024360生成awr报告时报错:ERROR:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line...
  • pl/sql developer 的test窗口 提示字符串缓冲区太小的解决方法在pl/sql developer 的test 窗口中如果函数参数类型varchar2或string则它将采用string类型传递,这样如果在输入输出变量的长度比较大时会提示:ORA-06502...
  • ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:在"WMSYS.WM_CONCAT_IMPL",line 30  记录一下,今天在合并订单号的时候出现了这个错误,想了很久没搞定,在网上搜了多种方法都没有解决(包括自定...
  • select t1.name,wm_concat(t1.sl||t1.mc) from my_table t1 group by t1.name;
  • 在进行使用WM_CONCAT或者自定义的聚合函数,进行拼的时候,可能遇到拼形成的结果集大于4000,这时候,系统会提示,超过系统限制。所以,在这个时候,最好的处理办法就是将结果集处理成CLOB格式,下面共有两种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,721
精华内容 27,888
关键字:

如何查字符串缓冲区太小