PLSQL的SQL%NOTFOUND的使用场景

SELECT * INTO v_ticketStorageRow FROM BDM_TICKET_STORAGE
         WHERE p_startTicketNo >= START_NO_ AND p_startTicketNo <= END_NO_;
  IF SQL%FOUND
  THEN
    raise_application_error(-20000, '起始票号范围已经存在');
  END IF;

 当select没有记录时IF SQL%FOUND并不会执行到,而是抛出NO_DATA_FOUND异常

这样的场景可以用select count(*) into v_recCout, 判断v_recCount不为0验证有无记录

 

SQL%FOUNDSQL%NOTFOUND在update和delete语句执行后可以正常用

 

 

对PLSQL的SQL%NOTFOUND的再验证

http://www.cnblogs.com/gaojian/archive/2012/11/23/2784471.html

 

NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT的区别

http://hutianci.iteye.com/blog/386726

 

posted @ 2017-10-23 16:07  老豆芽  阅读(2868)  评论(0)    收藏  举报