DECLARE
qty_on_hand NUMBER(5);
BEGIN
SELECT quantity
INTO qty_on_hand
FROM inventory
WHERE product = 'TENNIS RACKET'
FOR UPDATE OF quantity;
IF qty_on_hand > 0 THEN -- check quantity
UPDATE inventory
SET quantity = quantity - 1
WHERE product = 'TENNIS RACKET';
INSERT INTO purchase_record
VALUES ('Tennis racket purchased', SYSDATE);
ELSE
INSERT INTO purchase_record
VALUES ('Out of tennis rackets', SYSDATE);
END IF;
COMMIT;
END;
--
程序是用於處理一個網球拍訂單的。首先聲明一個NUMBER類型的變量來存放現有的球拍數量。然後從數據表inventory中把球拍的數量檢索出來。
如果數量大於零,程序就會更新inventory表,並向purchase_record表插入一條購買記錄,如果數量不大於零,程序會向purchase_record表
插入一條脫銷(out-of-stock)記錄。
--注意for update of