Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Masukkan ke dalam tabel dari tipe koleksi Oracle 12c - ORA-00902:tipe data tidak valid

Setelah meninjau kembali kueri Anda dengan cermat, saya menemukan bahwa Anda benar. Insert tidak bekerja. Dan itu terlihat benar juga. Kami sudah memiliki FORALL INSERT untuk memasukkan data dari koleksi ke tabel. Oleh karena itu perlunya tambahan INSERT as Select Statement dikesampingkan. Namun Anda dapat menggunakan SELECT pernyataan menggunakan koleksi di Where klausa kueri. Untuk membuat dan menyisipkan, Anda cukup mengikuti langkah-langkah di bawah ini.

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;
/

Jika Anda ingin menggunakan Type dideklarasikan di bawah PLSQL cakupan di Select pernyataan, Anda dapat menggunakan seperti di bawah ini:

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. baris pertama VS Baris berikutnya VS jumlah baris

  2. Oracle sebagai Solusi dari Mutasi Tabel

  3. Cara mendapatkan data BLOB menggunakan Oracle ODBC

  4. Tulis pernyataan sisipkan dengan klausa pilih yang mengembalikan id di Oracle

  5. Oracle:Bagaimana cara menentukan nama BARU suatu objek dalam pemicu AFTER ALTER?