Oracle必须死之奇怪的ORA-06502错误
作为熟练.Net码农以及非熟练Oracle用户很多时候Oracle总给我一种这货就是存心恶心我们的感觉。
虽然不得不承认Oracle是个很(an)好(gui)的产品,但是总有那么好几下被恶心到了。比如说屎一样的驱动,还比如说今天遇到的奇怪错误。
事情是这样子的:当在数据库中增加了新的资料后,系统中执行如下脚本时总是报ORA-06502:
select getmaterialinfo() from dual
说明下,getmaterialinfo是个返回varchar2的function。好吧,看起来是function里面变量的大小有问题,果断调试之。
不过当执行下列调试语句时,奇迹发生了:
DECLARE
struserid varchar2(200);
v_Return VARCHAR2(10000);
begin
STRUSERID := ''; v_return := getmaterialinfo(
STRUSERID=>STRUSERID
); end;
是的,什么都没有发生!!!!就这么正常结束了!!!!!一个奇迹由于什么都没有发生而发生了,这不是个奇迹又能是什么?
好吧,神神叨叨的就跳过吧。还是简单说下结论:
返回的字符串长度超过4000,而默认缓冲区大小是4000,于是Oracle果断报了个错(不理解为什么返回类型设置了是varchar2(5000)了还需要纠结返回长度……求解释?),抛出个看错误输出的描述完全猜不到的错误来。
参考解决方法 http://stackoverflow.com/questions/3790379/how-to-query-a-clob-column-in-oracle,简单说就是当作CLOB来处理就好了。
最后说一句:Oracle必须死
Oracle必须死之奇怪的ORA-06502错误的更多相关文章
- 关于oracle 11g导出数据时 报 ORA 1455错误的处理
因为导出的该用户的表可能存在空数据表,那么可能就会出现此其异常. 首先: 查看: SQL>show parameter deferred_segment_creation; 假设为T ...
- oracle 错误码查看命令oerr ora及常用错误码总结--不断更新
oracle 错误码查看命令oerr ora及常用错误码总结--不断更新 1.ORA-00907: 缺失右括号 我自己的问题出在 字段的default 和 not null 顺序反了,defalut ...
- listener.log文件过大导致oracle假死
/home/u01/oracle/product/11gr2/db_1/log/diag/tnslsnr/VM_179_95_centos/listener/trace/listener.log li ...
- [转帖]ORACLE 12C连接时报ORA28040和ORA01017的错误
ORACLE 12C连接时报ORA28040和ORA01017的错误 http://blog.itpub.net/12679300/viewspace-2150667/ 我一直在的处理方式是让更新or ...
- 502的错误其实不是nginx的问题,要从后端找原因。php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。
502的错误其实不是nginx的问题,要从后端找原因.php-cgi进程数不够用.php执行时间长.或者是php-cgi进程死掉,都会出现502错误.
- oracle客户端不需要配置tnsnames.ora文件直接连接服务器数据库
在以前的oracle使用过程中,想要在客户端连接到服务器时,都是在客户端中的tnsnames.ora文件配置如以下内容: adb = (DESCRIPTION = (ADDRESS_LIST = (A ...
- Oracle 11gR2 静默安装奇怪错误
在静默安装Oracle 11gR2 的时候发现的奇怪错误,有点摸不着头脑 【步骤一】配置静默文件只安装软件 #--------------------------------------------- ...
- 关于PLSQL配置了正确的Oracle客户端但是不能识别tnsnames.ora问题
场景描述: 在通过安装Oracle客户端使用PLSQL的时候发现PLSQL在已经正常配置了Oracle Home和Ocdi library的情况下不能识别tnsnames.ora中的有效配置. 正常安 ...
- oracle三个连接配置文件 listener.ora、sqlnet.ora、tnsnames.ora
关于PLSQL连接ORACLE配置字符串 首先要讲一下下面的一些知识 1.ORACLE_SID:(ORACLE SYSTEM IDENTIFIER) Oracle实例是由SGA和一组后台进程组成的,实 ...
随机推荐
- JavaScript 面向对象与原型
ECMAScript有两种开发模式:1.函数式(过程化);2.面向对象(OOP); 一 创建对象1.普通的创建对象 ? 1 2 3 4 5 6 7 8 9 // 创建一个对象,然后给这个对象新的属性和 ...
- PIC32MZ tutorial -- Key Debounce
Today I accomplish a application on PIC32MZ EC Starter Kit. The feature of application is to light u ...
- mysql修改列名字段类型
mysql> alter table lesson change title title varchar(100) charset utf8;
- yum 介绍
yum是一个用于管理rpm包的后台程序,用python写成,可以非常方便的解决rpm的依赖关系.在建立好yum服务器后,yum客户端可以通过 http.ftp方式获得软件包,并使用方便的命令直接管理. ...
- shell_基础知识
参考: http://blog.csdn.net/kaizi318/article/details/9343551 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告 ...
- 最小生成树(HDOJ 1863)
畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1863 1.Prim算法: Prim算法是由一个点(最初的集合)向外延伸,找到与集合相连权值最小的边, ...
- c#中获取数组的行列个数的方法
GetUpperBound可以获取数组的最高下标.GetLowerBound可以获取数组的最低下标.这样就可以实现对数组的遍历//定义二维数组string[,] myStrArr2=new strin ...
- scala学习心得3
在scala中可以定义函数字面量参数,定义方式如下:
- nullcon HackIM 2016 -- Programming Question 2
Your simple good Deeds can save you but your GREED can kill you. This has happened before. This gree ...
- clone()与clone(true)的区别
clone()方法用于复制一个元素,但是被复制出来的元素不具备复制的功能,如果希望被复制出来的元素也具备复制的功能,需要给clone()方法加上true这个参数,即clone(true). 例如: & ...