读书人

函数创建成功在执行时提示数字或值异

发布时间: 2012-02-23 22:01:36 作者: rapoo

函数创建成功,在执行时提示数字或值错误 : 字符串缓冲区太小
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, 就是一个死循环,再长也不行。

读书人网 >oracle

热点推荐