sql >> Databasteknik >  >> RDS >> Oracle

ORA-21700:objektet finns inte eller är markerat för borttagning för Associative Array som indataparameter anropad från ODP.NET

efter flera dagars googling ändrade jag koden på detta sätt:

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 enda jag gjorde är att använda en v_temp som ser ganska överflödig ut. men det fungerar. Jag gjorde den här ändringen eftersom jag sökte i den här artikeln här ... den nämnde:

Observera dock att från och med 12.1 kan du inte anropa tabellfunktionen direkt i TABLE-operatören. Du måste anropa den i PL/SQL, tilldela resultat till en variabel och sedan referera till variabeln i TABLE.

även om situationen är annorlunda i mitt fall (jag använder 12.2), löste det mitt problem.




  1. SQL Server SMO klagar över att DLL saknas

  2. Förstå de 3 nyckelegenskaperna hos Big Data

  3. Hur man skapar pivottabell i PostgreSQL

  4. 4 skäl till varför du bör prioritera databasövervakning i din planering för 2020