Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Übergeben eines assoziativen Arrays als Parameter zwischen Paketen

Ja, das ist sicher möglich.

Es ist schwer zu erklären, warum Sie ohne Paketspezifikationsbeispiele einen Fehler erhalten, aber im Allgemeinen sollten Sie einen benutzerdefinierten Typ als Parameter entweder mit Typ DDL definieren , oder definieren Sie den Typ in der Paketspezifikation.

Ich nehme an, Sie möchten die letztere Variante :)

Hier also ein Beispiel:

create or replace package TestPackage_1
as

type TTestType is table of varchar2(1) index by varchar2(1);

end TestPackage_1;
/

create or replace package TestPackage_2
as

procedure Dummy(aParam TestPackage_1.TTestType);

end TestPackage_2;
/

Sie können TTestType verwenden Geben Sie einen beliebigen PL/SQL-Block ein, aber nicht in SQL.