我被傳遞的日期作爲數組參數從Oracle Apex頁面套入包中。包中包含一個包含日期類型數組的過程。所以我想要做的就是從Apex頁面pl/sql塊傳入一個簡單的日期。這裏是我的代碼到目前爲止:如何將Oracle Apex頁面中的值數組傳遞到Oracle存儲過程
create or replace PACKAGE PK_NAME AS
TYPE DATES_ARRAY_TYPE IS VARRAY(100) OF DATE;
PROCEDURE PASS_DATES (
DATES DATES_ARRAY_TYPE
);
END PK_NAME;
create or replace PACKAGE BODY PK_NAME AS
PROCEDURE PASS_DATES (
DATES DATES_ARRAY_TYPE
) AS
BEGIN
for i in 1..DATES.count loop
HTP.P(DATES(i));
end loop;
END;
END PASS_DATES;
END PK_NAME;
那樣簡單。我把這個過程從頂點頁PL/SQL塊:
PK_NAME.PASS_DATES (
DATES => '15-JAN-15', '16-JAN-15', '17-JAN-15'
);
但是,這是行不通的,每次我試圖挽救它的時候,它給了我一個錯誤:
•ORA-06550: line 3, column 25: PLS-00312: a positional parameter association may not follow a named association ORA-06550: line 2, column 1: PL/SQL: Statement ignored
它有什麼問題或我錯過了什麼?
我已經在Apex頁面內創建了一個更多的區域,代碼如下:「declare type array_t is date varray(50); array_t:array_t('31 -JUL-15','01 -AUG-15','02 -AUG-13','03-AUG-13'); begin for i in 1..array.count loop htp.prn(array(i)); end loop; end;「它工作正常,但是,我們的要求是從Apex調用包過程並傳遞日期數組,因此這個工作示例恐怕不是我的選擇......關於如何嵌入它的任何想法特別要求?!並感謝您的答覆Анатолий,高度讚賞! – USSR
當我嘗試使用PK_NAME.DATES_ARRAY_TYPE它給我一個錯誤:「ORA-06550:第2行,第1列:PLS-00221:'DATES_ARRAY_TYPE'不是一個過程或未定義的ORA-06550:第2行,第1列:PL/SQL:語句被忽略「,是的,我想從包中使用它,謝謝你的鏈接,但是當我第一次創建我時包,只是試圖將其轉換爲支持我的要求。而要求是,使用包和從Apex Region pl/sql塊簡單地調用過程並將幾個日期作爲參數傳遞... – USSR
hello my friend,i'm edit我的答案增加了更多的例子和截圖。看到它,我希望這可以幫助你解決問題。 :) –