Ich bin mit der Weitergabe von Daten als ein Array-Parameter von der Oracle Apex-Seite in Paket stecken. Paket enthält eine Prozedur mit einem Array von Datenarten. Also, was ich tun möchte, ist, ein einfaches Datum von der Apex-Seite, pl/sql Block, hinein zu geben. Hier ist mein Code so weit:Wie übergeben Sie ein Array von Werten von Oracle Apex Page in Oracle gespeicherte Prozedur
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;
Einfach so. Und ich nenne dieses Verfahren von dem Apex Seite PL/SQL-Block:
PK_NAME.PASS_DATES (
DATES => '15-JAN-15', '16-JAN-15', '17-JAN-15'
);
Allerdings funktioniert es nicht, jedes Mal, ich versuche, es zu retten, es gibt mir eine Fehlermeldung:
•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
Was ist daran falsch oder was habe ich verpasst?
Ich habe eine weitere Region innerhalb der Apex-Seite mit dem Code erstellt: "declare Typ Array_t ist Varray (50) des Datums; Array array_t: = array_t ('31 -JUL-15 ', '01-AUG-15', '02-AUG-13 ', '03-AUG-13'); beginnen für i in 1..array.count Schleife htp.prn (Array (i)); Endschleife; Ende: "Es funktioniert gut, aber unsere Anforderungen ist es, Package-Prozedur von der Apex aufrufen und Array von Daten übergeben, so dass dieses Arbeitsbeispiel keine Option ist, fürchte ich ... Alle Gedanken, wie Sie es für unsere einbetten Besondere Anforderungen?! Und vielen Dank für die Antwort Анатолий, sehr geschätzt! – USSR
Und wenn ich versuche, PK_NAME.DATES_ARRAY_TYPE zu verwenden, gibt es mir einen Fehler: "ORA-06550: Zeile 2, Spalte 1: PLS-00221: 'DATES_ARRAY_TYPE' ist nicht eine Prozedur oder ist undefiniert ORA-06550: Zeile 2, Spalte 1: PL/SQL: Anweisung ignoriert ". Und ja, ich möchte sie aus dem Paket heraus verwenden. Danke für den Link, aber ich folgte ihm, als ich zuerst meine erstellte Paket, einfach versucht, es zu konvertieren, um meine Anforderungen zu unterstützen. Und Anforderungen sind, mit dem Paket und einfach Prozedur aus dem Apex Region pl/sql Block aufrufen und mehrere Daten als Parameter übergeben ... – USSR
Hallo mein Freund, ich bin bearbeiten meine Antwort, um weitere Beispiele hinzuzufügen und Screenshots. sieh es dir an, ich hoffe das hilft dir das Problem zu lösen. :) –