2015-10-29 43 views
1
CREATE OR REPLACE PROCEDURE AddInterest 
(bankname VARCHAR, rate DECIMAL) 
AS 
BEGIN 

UPDATE Deposit SET balance = balance + (balance * rate/100) 
WHERE branchname = bankname; 

**dbms_output.put_line(bankname ||rate);** 
END; 
/

在我的代碼,該DBMS_OUTPUT, 我想後輸出。 請幫忙。從表SQL甲骨文輸出什麼,我已經從存款賬戶編輯存儲過程

+0

您是否想爲存儲過程添加out參數?你可以這樣做,大概你不會返回給調用者一個字符串,它只是結合兩個輸入參數中的數據... –

+0

查找[RETURNING BULK COLLECT](https://docs.oracle.com/ cd/B19306_01/appdev.102/b14261/returninginto_clause.htm)針對Oracle的語法 – cha

+0

[此處](https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/tuning.htm#BABHDFDE)是dbms_output的完美例子 – cha

回答

0

聲明變量UpdatedRecordsTABLE OF Deposit%ROWTYPE並將RETURNING BULK COLLECT-clause添加到您的UPDATE聲明中。

UPDATE ... RETURNING <all fields> BULK COLLECT INTO UpdatedRecords;

執行UpdatedRecords變量後,將更新記錄的集合,因爲他們改變之前看。使用LOOP進行掃描並打印您想要的內容。

您也可以減少執行後收集的字段數量,只需更改RETURNING子句並給出UpdatedRecords變量的正確聲明。

有關RETUNING子句,請參閱Oracle文檔http://docs.oracle.com/database/121/LNPLS/returninginto_clause.htm#LNPLS01354

相關問題