如果没有查询到记录,就直接发生异常了.建议用SELECT COUNT(*) INTO ......
用记录条数来判断.你是对EXCEPTIONS处理不熟吗?

解决方案 »

  1.   

    为什么"where username=username and password=passwords;"这个条件在存储过程中不起作用?
      

  2.   

    不会啊,这个条件应该有作用的啊,看你传什么参数进去,它就按什么条件执行啊!EXCEPTION
    WHEN NO_DATA_FOUND
    result:='0';
    WHEN OTHERS
    result:='2';
      

  3.   

    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    result:='0';
    WHEN OTHERS THEN
    result:='2';
      

  4.   

    第二个如果可能应该是:
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
      

  5.   


      select count(*) into result from bbsuser where passwords=passwords and username=username;我数据表中有三条记录,在存储过程中执行上面的语句,无论条件是什么,返回的记录总是 3 ,这是怎么回事呢?条件好像不起作用啊CREATE OR REPLACE  PROCEDURE TEST (username 
        varchar2,passwords varchar2,result out number) as
     
     a varchar2(20);
    beginselect count(*) into result from bbsuser where passwords=passwords and username=username;
    end;