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

संग्रह प्रकार oracle 12c - ORA-00902 से तालिका में सम्मिलित करें:अमान्य डेटाटाइप

आपकी क्वेरी को ध्यान से देखने के बाद, मैंने पाया कि आप सही थे। Insert काम नहीं करता है। और यह सही भी लगता है। हमारे पास पहले से ही FORALL INSERT है संग्रह से तालिका में डेटा सम्मिलित करने के लिए। इसलिए एक अतिरिक्त INSERT as Select Statement . रखने की आवश्यकता है खारिज किया जाता है। हालाँकि आप SELECT . का उपयोग कर सकते हैं Where . में संग्रह का उपयोग करते हुए विवरण क्वेरी का खंड। बनाने और सम्मिलित करने के लिए आप बस नीचे दिए गए चरणों का पालन कर सकते हैं।

CREATE OR REPLACE PACKAGE BODY test123 
AS
PROCEDURE p1 IS
 BEGIN
  SELECT c1,c2 BULK COLLECT INTO v_tab FROM tabx;  

  ForAll rec in 1..v_tab.count
   INSERT INTO taby
    values v_tab(rec);
     --SELECT * FROM TABLE(v_tab);
  END;
END;
/

यदि आप Type . का उपयोग करना चाहते हैं PLSQL . के तहत घोषित Select . में कार्यक्षेत्र कथन, आप नीचे के रूप में उपयोग कर सकते हैं:

DECLARE
 TYPE typ1 IS RECORD(col1 VARCHAR2(100),col2 VARCHAR2(100));
 TYPE tab_typ IS TABLE OF typ1 INDEX BY BINARY_INTEGER;
 v_tab tab_typ;
BEGIN

 SELECT col1,col2 BULK COLLECT INTO v_tab FROM tabx;  

  DELETE FROM taby
    WHERE (col1,col2) in (Select * from table(v_tab)); 

END;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VARCHAR2 कॉलम पर ResultSet.getString () खाली स्ट्रिंग लौटाता है

  2. ओरेकल में ईएमपी तालिका में शीर्ष तीन उच्चतम वेतन कैसे प्राप्त करें?

  3. किसी कॉलम का डेटाटाइप बदलना, जिसे अन्य तालिकाओं द्वारा संदर्भित किया जाता है

  4. गैर-कार्डिनल मानों वाली पिवट तालिका

  5. स्प्रिंग जेडीबीसी में वर्तमान कनेक्शन ऑब्जेक्ट कैसे प्राप्त करें?