可以存取负值
可能是“select accountnum FROM persaccount WHERE persaccount.phoneno = '"&Request.Form("phoneno")&"'”是空值(NULL)可以这样:
UPDATE paylog SET paylog.fee =0-(select nvl(accountnum,0) FROM persaccount WHERE persaccount.phoneno = '"&Request.Form("phoneno")&"'

解决方案 »

  1.   

    to be error free , you have to ensure that only one row returns from persaccount table 
    -->UPDATE paylog SET paylog.fee =0-(select nvl(accountnum,0) FROM persaccount WHERE rownum = 1 and persaccount.phoneno = '"&Request.Form("phoneno")&"'
      

  2.   

    number的存取范围是
    浮点-1*10E130 -- 9.999999…99*10E125
    精度38位(其实可以到达40位)
      

  3.   

    SQL> set serveroutput on
    SQL> declare
      2  a number;
      3  begin
      4  select 0-1 into a from dual;
      5  dbms_output.put_line(a);
      6  end;
      7  /
    -1