Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-21700:ऑब्जेक्ट मौजूद नहीं है या ODP.NET से कॉल किए गए इनपुट पैरामीटर के रूप में एसोसिएटिव एरे के लिए डिलीट के लिए चिह्नित है

कई दिनों तक गुगली करने के बाद, मैंने कोड को इस तरह बदल दिया:

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;

केवल एक चीज जो मैंने की वह एक v_temp का उपयोग करना है जो काफी बेमानी लगती है। लेकिन यह काम करता है। मैंने यह बदलाव इसलिए किया है क्योंकि मैंने इस लेख को यहां खोजा है ... इसमें उल्लेख किया गया है:

<ब्लॉकक्वॉट>

ध्यान दें, हालांकि, 12.1 तक, आप टेबल फ़ंक्शन को सीधे टेबल ऑपरेटर के अंदर कॉल नहीं कर सकते हैं। आपको इसे पीएल/एसक्यूएल में लागू करना होगा, एक वेरिएबल को परिणाम असाइन करना होगा, और फिर टेबल के अंदर वेरिएबल का संदर्भ देना होगा।

हालांकि मेरे मामले में स्थिति अलग है (मैं 12.2 का उपयोग कर रहा हूं), इससे मेरी समस्या हल हो गई।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00054:निर्दिष्ट NOWAIT के साथ संसाधन व्यस्त और अधिग्रहण

  2. लिनक्स में SQL * PLUS क्लाइंट कैसे स्थापित करें

  3. एक्सेल वर्कशीट में Oracle टेबल एक्सपोर्ट करना

  4. Oracle में परिणाम कैसे सीमित करें

  5. java.sql.SQLException:ORA-03115:असमर्थित नेटवर्क डेटाटाइप या प्रतिनिधित्व