sql >> Database teknologi >  >> RDS >> Oracle

ORA-21700:objekt eksisterer ikke eller er markeret til sletning for Associative Array som inputparameter kaldet fra ODP.NET

efter flere dages google ændrede jeg koden på denne måde:

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;

det eneste jeg gjorde er at bruge en v_temp som ser ret overflødig ud. men det virker. Jeg lavede denne ændring, fordi jeg søgte i denne artikel her ... den nævnte:

Bemærk dog, at du fra 12.1 ikke kan kalde tabelfunktionen direkte inde i TABLE-operatøren. Du skal kalde det i PL/SQL, tildele resultat til en variabel og derefter henvise til variablen inde i TABLE.

selvom situationen er anderledes i mit tilfælde (jeg bruger 12.2), løste det mit problem.




  1. Hvordan virker contains() i PL-SQL?

  2. Hvordan springer man over kolonner i CSV-fil, når man importerer til MySQL-tabel ved hjælp af LOAD DATA INFILE?

  3. At komme rundt i MySQL Kan ikke genåbne tabelfejl

  4. Top 9 database management systemer til Joomla skabeloner