Oracle Apex 페이지에서 패키지로 배열 매개 변수로 전달 날짜가 붙어 있습니다. 패키지에는 날짜 유형의 배열이있는 프로 시저가 하나 있습니다. 그래서 내가하고 싶은 것은 Apex 페이지에서 pl/sql 블록으로 간단한 날짜를 전달하는 것입니다. 지금까지 내 코드는 다음과 같습니다.Oracle Apex Page의 값 배열을 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 블록에서이 프로 시저를 호출 :
그러나•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
PK_NAME.PASS_DATES (
DATES => '15-JAN-15', '16-JAN-15', '17-JAN-15'
);
, 그것은 나에게 오류를 제공, 나는 그것을 저장하기 위해 노력하고있어 모든 시간을 작동하지 않습니다
무엇이 잘못 되었나요? 무엇을 놓쳤습니까?
Apex 페이지 내에 코드가 하나 더있는 영역을 만들었습니다. "선언 array_t 유형은 VARRAY (50)입니다. 배열 array_t : = array_t ('31 -JUL-15 ', '01 -AUG-15', '02 -AUG-13 ', '03 -AUG-13'); begin i에 대해 을 1.array.count 루프에 넣습니다. 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 : 문 무시됩니다. 그리고 네, 패키지 내에서 그것을 사용하고 싶습니다. 링크를 주셔서 감사하지만 첫 번째 만들 때 그것을 따라 내 패키지, 단순히 내 요구 사항을 지원하기 위해 그것을 변환하려고 노력했다. 그리고 요구 사항은, 패키지를 사용하여 단순히 Apex 지역 PL/SQL 블록에서 절차를 호출하고 매개 변수로 여러 날짜를 전달 ... – USSR
안녕, 내 친구, 내가 편집 해요 몇 가지 예를 추가하려면 내 대답 스크린 샷. 그것을 참조하십시오, 당신이 문제를 해결하는 데 도움이되기를 바랍니다. :) –