【问题标题】:Numeric or value error: character to number conversion error数字或值错误:字符到数字的转换错误
【发布时间】:2012-02-03 06:27:09
【问题描述】:
create or replace
procedure prdBandwidth
is
    cursor c_bandwidth is select distinct mt.name bwname,b.circuitno circuitno,subapp.customerno customerno,netinfo.bandwidthtype bandwidthtype from wom.tbltsubscriberapplication subapp,wom.tbltllnetworkinfo netinfo,wom.tblmmastertype mt,(select max(applicationdate) as maxdate,circuitno,customerno from wom.TBLTSUBSCRIBERAPPLICATION,tblmaccount where nodename='End' and accountnumber=customerno group by circuitno, customerno) b  where subapp.applicationdate=b.maxdate and  subapp.circuitno=b.circuitno and subapp.llnetworkinfoid=netinfo.id and netinfo.bandwidthtype=mt.id;
    bwtype varchar2(6);
    bwtypelen number;
    bwtypesublen number;
    bwvalue varchar2(8);
      kbpsdata number;
begin
  DBMS_OUTPUT.PUT_LINE('hhahahahah');
  for crs_bandwidth in c_bandwidth
  loop 
    bwtypelen:=length(crs_bandwidth.bwname);
    DBMS_OUTPUT.PUT_LINE('bwtypelen:::'+bwtypelen);
    bwtype:=substr(crs_bandwidth.bwname,-4,4);
    DBMS_OUTPUT.PUT_LINE('bwtype:::'+bwtype);
    bwtypesublen:=length(bwtype);
     DBMS_OUTPUT.PUT_LINE('bwtypesublen:::'+bwtypesublen);
    bwtypesublen:=bwtypesublen-1;
     DBMS_OUTPUT.PUT_LINE('bwtypesublen:::'+bwtypesublen);
    bwvalue:=substr(crs_bandwidth.bwname,bwtypesublen,bwtypesublen);
    DBMS_OUTPUT.PUT_LINE('bwvalue:::'+bwvalue);
    if bwtype='mbps' then
        DBMS_OUTPUT.PUT_LINE('bwtype in if condition:::'+bwvalue);
        bwvalue:=bwvalue*1024;
        DBMS_OUTPUT.PUT_LINE('bwtype in if condition:::'+bwvalue);
    end if;
    update TBLMLEASEDLINECUSTOMER set BANDWIDTH=bwvalue where CUSTOMERID = (select CUSTOMERID from TBLMCUSTOMER  where  accountnumber=crs_bandwidth.customerno);
    end loop;
   commit;
end;

从命令中的第 36 行开始出错:

exec prdBandwidth

错误报告:

ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "JISPBILCORBILLINWOM501.PRDBANDWIDTH", line 14
ORA-06512: at line 1
06502. 00000 -  "PL/SQL: numeric or value error%s"
*Cause:    
*Action:

这是代码

【问题讨论】:

    标签: oracle plsql ora-06502


    【解决方案1】:

    在您的 DBMS_OUTPUT.PUT_LINE 语句中,尝试使用 '||'作为连接运算符,而不是“+”。

    【讨论】:

    • +1 我将把它添加到我不使用 DBMS_OUTPUT 调试代码的原因列表中。
    • @APC:不使用 DBMS_OUTPUT 的原因有很多,但此错误与这些无关,是使用错误运算符的结果 - 这将导致语法或语义错误在 PL/SQL 操作或 SQL 语句或任何其他语言中
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多