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 ...
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。