Я зациклился на проходящих Датах в качестве параметров массива с страницы Oracle Apex в пакете. Пакет содержит одну процедуру с массивом типов дат. Так что я хочу сделать, это передать простые даты в него с страницы Apex, pl/sql block. Вот мой код:Как передать массив значений из страницы 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 блока Apex:
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 является 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; «Это прекрасно работает, однако наши требования заключаются в том, чтобы вызвать процедуру пакета из Apex и передать массив дат, поэтому этот рабочий пример не является вариантом, которого я боюсь ... Любые мысли о том, как внедрить его для наших Особые требования?! И спасибо за ответ Анатолий, высоко оценил! – USSR
И когда я пытаюсь использовать PK_NAME.DATES_ARRAY_TYPE, он дает мне ошибку: «ORA-06550: строка 2, столбец 1: PLS-00221:« DATES_ARRAY_TYPE »не процедура или не определена ORA-06550: строка 2, столбец 1: PL/SQL: заявление игнорируется ». И да, я хотел бы использовать его изнутри пакета. Спасибо за ссылку, но я последовал за ней, когда сначала создал мой пакет, просто попробовал преобразовать его для поддержки моих требований. И требования заключаются в том, что с помощью пакета и просто вызывать процедуру из блока PL/sql региона Apex Region и передавать несколько дат в качестве параметров ... – USSR
привет, мой друг, я редактирую мой ответ, чтобы добавить еще несколько примеров и скриншоты. см. его, я надеюсь, что это поможет вам решить проблему. :) –