如果想要在執行完DML後知道是否有成功可以使用SQL%FOUND或SQL%ROWCOUNT~
- SQL%FOUND
If_change Boolean
BEGIN
UPDATE PERSON
SET Name := 'abc';
WHERE Tel = 080;
If_change := SQL%FOUND;
DBMS_OUTPUT.PUT_LINE('Success :' || If_change );
END;
- SQL%NOTFOUND
BEGIN
UPDATE PERSON
SET Name := 'abc';
WHERE Tel = 080;
--如果沒找到--
IF (SQL%NOTFOUND )
THEN
DBMS_OUTPUT.PUT_LINE('No such person !');
END IF;
END;
- SQL%ROWCOUNT
BEGIN
DELETE FROM PERSON WHERE TEL = 080;
DBMS_OUTPUT.PUT_LINE('DELETED :' || SQL%ROWCOUNT );
END;
另外的方式就是使用Returning into~
如果多於一列就可以使用BULK COLLECT將值傳回集合中~
沒有留言:
張貼留言