首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

函数创建成功,在执行时提示数字或值异常 : 字符串缓冲区太小

2012-02-23 
函数创建成功,在执行时提示数字或值错误 :字符串缓冲区太小create or replace function getParentTypeName

函数创建成功,在执行时提示数字或值错误 : 字符串缓冲区太小
create or replace function getParentTypeName(TypeID number)
 return varchar2
 is
  TempName varchar2(200);
  ReturnName varchar2(2000);
  TempID number;
 begin
  TempID:=0;
  select name into TempName FROM ar_fault_type where id=TypeID;
  SELECT ID into TempID FROM AR_FAULT_TYPE WHERE ID=TypeID;
  while TempID>1 loop
  begin
  ReturnName:=TempName||'->'||ReturnName;
  select name into TempName FROM ar_fault_type where id=TempID;
  SELECT ID into TempID FROM AR_FAULT_TYPE WHERE ID=TempID;
  end;
  end loop;
   
  ReturnName:= TempName||'->'||ReturnName;
  return ReturnName;
   
 end getParentTypeName;

提示出现错误在 ReturnName:=TempName||'->'||ReturnName; 这一行。

高手看看是哪里的问题呢??


[解决办法]

探讨
引用:
我考虑到了这个问题,但我需要给一个varchar2的变量不断循环赋加值,请问有没有什么解决方法呢?

[解决办法]
如果你输入的值查找出来的TempID>1, 就是一个死循环,再长也不行。

热点排行