ORACLE更新數據時如果有就更新沒有就插入


SQL寫法:

begin

  update table_name set salary = 10000 where emp_id = 5;

  if sql%notfound then

   insert into table_name (id,name,salary)values("","","") ;

  end if;

end;

SQL%NOTFOUND 是一個布爾值。與最近的sql語句(update,insert,delete,select)發生交互,當最近的一條sql語句沒有涉及任何行的時候,則返回true。否則返回false。這樣的語句在實際應用中,是非常有用的。例如要update一行數據時,如果沒有找到,就可以作相應操作。

當update emp_id為5的這行記錄,如果update影響條數為0,則插入一條數據。

 

SQL%FOUND 的用法與sql%notfound用法相反,也是與最近的sql語句發生交互,如果影響行數大於0條,則為true

否則為false。

 

SQL%ROWCOUNT在dml語句執行前是null,執行后,對於select into語句,執行成功則值為1,不成功則值為0。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM