0
你能幫我寫一個PLSQL代碼來爲單個變量傳遞'多個輸入值'嗎?請幫助我如何使用Record type,object和constructors編寫Anonymous PLSQL塊。如何使用記錄類型,對象和構造函數在PLSQL中輸入多個輸入值?
謝謝你,
問候, Veeresh
你能幫我寫一個PLSQL代碼來爲單個變量傳遞'多個輸入值'嗎?請幫助我如何使用Record type,object和constructors編寫Anonymous PLSQL塊。如何使用記錄類型,對象和構造函數在PLSQL中輸入多個輸入值?
謝謝你,
問候, Veeresh
這裏有一種方法:
[email protected]> CREATE OR REPLACE TYPE NUM_ARRAY AS TABLE OF NUMBER;
2/
Type created.
[email protected]> create or replace procedure demo_sp (
in_array in num_array,
out_sum out number
)
is
BEGIN
out_sum := 0;
for i in 1 ..in_array.count loop
out_sum := out_sum + in_array(i);
END LOOP;
END;
/
Procedure created.
[email protected]> DECLARE
total NUMBER;
nos NUM_ARRAY;
BEGIN
SELECT ROWNUM BULK COLLECT INTO nos FROM dual CONNECT BY ROWNUM<=5;
FOR I IN 1 .. nos.COUNT LOOP
dbms_output.put_line(nos(i));
end loop;
demo_sp(nos,total);
dbms_output.put_line('Total is: '||total);
END;
/
1
2
3
4
5
Total is: 15
PL/SQL procedure successfully completed.
[email protected]>
你嘗試過這麼遠嗎? –
由於我只讀訪問我的數據庫,我試圖讀取輸入使用集合,如 – Veeresh
聲明類型TEmpRec是記錄(EmployeeID EMPLOYEES.EMPLOYEE_ID%TYPE,姓氏EMPLOYEES.LAST_NAME%TYPE);類型TEmpList是TEmpRec的表; vEmpList TEmpList;我試圖通過在BEGIN部分循環將它們傳遞給vEmpList。 – Veeresh