sql >> Database >  >> RDS >> Oracle

ORA-21700:object bestaat niet of is gemarkeerd voor verwijdering voor Associative Array als invoerparameter aangeroepen vanuit ODP.NET

na enkele dagen googlen heb ik de code op deze manier gewijzigd:

CREATE OR REPLACE PACKAGE Support_Data_Types AS
            TYPE ttDate            IS TABLE OF DATE
END Support_Data_Types;
PROCEDURE GetData
(
    tabDates IN SUPPORT_DATA_TYPES.TTDATE,
)
AS
    v_temp SUPPORT_DATA_TYPES.TTDATE:= tabDates;  -- assigned the parameter to a temporary variable
BEGIN
    SELECT count(*) INTO n FROM table(v_temp);
END GetData;

het enige dat ik deed, is een v_temp gebruiken die er nogal overbodig uitziet. maar het werkt. Ik heb deze wijziging aangebracht omdat ik dit artikel hier heb doorzocht ... het vermeldde:

Houd er echter rekening mee dat u vanaf 12.1 de tabelfunctie niet rechtstreeks in de TABLE-operator kunt aanroepen. U moet het aanroepen in PL/SQL, het resultaat toewijzen aan een variabele en vervolgens verwijzen naar de variabele in TABLE.

hoewel de situatie in mijn geval anders is (ik gebruik 12.2), heeft het mijn probleem opgelost.




  1. MySQL LEAST()-functie - Vind het kleinste argument in een lijst met argumenten

  2. 2 manieren om de ASCII-code voor een bepaald personage in MariaDB te retourneren

  3. Proberen om een ​​Oracle te exporteren via PL/SQL geeft een datum van 0000-00-00

  4. FORMAT() is leuk en zo, maar...