当前位置:首页 > 开发 > 数据库 > 正文

ORA-06502: PL/SQL: numeric or value error错误解决

发表于: 2009-02-18   作者:Dead_knight   来源:转载   浏览次数:
sql
摘要:     当执行如下语句时出现“06502数字或值错误”,func_fa_getunororgpath函数主要是将人员组织ID参数转换为人员名称、组织PATH。 select func_fa_getunororgpath(pc.personorgselect) from tbl_pt_createtask pc where pc.orderid='2-0902
    当执行如下语句时出现“06502数字或值错误”,func_fa_getunororgpath函数主要是将人员组织ID参数转换为人员名称、组织PATH。
select func_fa_getunororgpath(pc.personorgselect) from tbl_pt_createtask pc where pc.orderid='2-090210-008-096'


    查看函数得知该函数返回VARCHAR2(4000)类型,函数代码如下:
create or replace function func_fa_getUNorOrgPath(idOrPath in varchar2) return string is
   Result varchar2(4000);
   urserOrOrgId varchar2(2000);
begin
   urserOrOrgId:=idOrPath;
  while urserOrOrgId is not null loop
       ……  ……
       ……  ……
      if tmpStr is null then
          Result:=Result ||tmpId ||';';
     else
          Result:=Result ||tmpStr ||';';      
     end if;       
  end loop;
  return(substr(Result,0,length(Result)-1));
end func_fa_getUNorOrgPath;

    当Result长度超过4000时,再执行Result:=Result ||tmpStr ||';';时即出现该错误,固改为返回CLOB类型,代码如下:
create or replace function func_fa_getUNorOrgPath(idOrPath in varchar2) return CLOB is
   Result CLOB;
   urserOrOrgId varchar2(2000);
   urserOrOrgId:=idOrPath;
begin
  if idOrPath is null then
     return empty_clob();  
  end if;
  DBMS_LOB.CREATETEMPORARY(Result, TRUE); 
  while urserOrOrgId is not null loop
       ……  ……
        if tmpStr is null then
            DBMS_LOB.writeappend(Result,LENGTH(tmpId),tmpId);
            DBMS_LOB.writeappend(Result,LENGTH(';'),';');
        else
            DBMS_LOB.writeappend(Result,LENGTH(tmpStr),tmpStr);
            DBMS_LOB.writeappend(Result,LENGTH(';'),';');
        end if;  
  end loop;
  return(substr(Result,0,length(Result)-1));
end func_fa_getUNorOrgPath;


    但在java中读取数据时需要采用Stream进行读取

ORA-06502: PL/SQL: numeric or value error错误解决

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
PL/SQL 错误过程、函数及解决方案笔记 1、創建一個過程,利用 cursor將一個表中的兩個字段的內容,
情况一:使用sqlplus登录 <img alt="" title="ORACLE用SYS登录报ORA-28009:connection as SYS s
1.准备软件 下载 oracle client客服端工具包instantclient-basic-nt-11.2.0.2.0 下载 pl/sql Develop
由于本人英语欠佳,在装上PL/SQL之后又加了中文包,不想由此出现了一个问题,在select查询结果中所
原文转载自:http://www.cnblogs.com/javadu/archive/2012/02/28/tomcat.html Tomcat 5.5.35 下发生
一、错误控制一览 在PL/SQL中,警告或错误被称为异常。异常可以是内部(运行时系统)定义的或是用户定
<style type="text/css"> /* banner */ #banner { position:static; top: 0px; left: 0px; wid
<style type="text/css"> /* banner */ #banner { position:static; top: 0px; left: 0px; wid
第七章 控制PL/SQL错误 一、错误控制一览 在PL/SQL中,警告或错误被称为异常。异常可以是内部(运行
一、错误控制一览 在PL/SQL中,警告或错误被称为异常。异常可以是内部(运行时系统)定义的或是用户定
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号