create function floattobitarray (lndata in float)
return varchar2
is
ora_data number(20,0);
qn varchar2(20);
begin
  ora_data:=trunc(lndata);
  qn:='';
  
  while ora_data>0 loop
  
    if mod(lndata,2)>0 then
     qn:='1'||qn;
    else
     qn:='0'||qn;
    end if;
    
    ora_data:=ora_data/2;
  end loop;我在一个select查询中调用(实际输入实参为number型,前30行为'0',第31行也是'0'),只能查出30行记录
下面就提示出错:
ERROR:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在"HMNEWDB.FLOATTOBITARRAY", line 15小弟跪求,望各位大哥多多指点。