sql >> Databáze >  >> RDS >> Oracle

Vložit do tabulky z kolekce typu oracle 12c - ORA-00902:neplatný datový typ

Po pečlivém přezkoumání vašeho dotazu jsem zjistil, že máte pravdu. Insert nefunguje. A vypadá to také správně. Již máme FORALL INSERT získat data vložená z kolekce do tabulky. Proto je nutné mít další INSERT as Select Statement je vyloučeno. Můžete však použít SELECT příkaz pomocí kolekce v Where klauzule dotazu. Chcete-li vytvořit a vložit, můžete jednoduše postupovat podle níže uvedených kroků.

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

V případě, že chcete použít Type deklarováno pod PLSQL rozsah v Select prohlášení, můžete použít následovně:

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. MySQL – Chyba připojení – [MySQL][Ovladač ODBC 5.3(w)]Hostitel „IP“ se nemůže připojit k tomuto serveru MySQL

  2. phpMyAdmin hází #2002 nelze se přihlásit k serveru mysql phpmyadmin

  3. Pro ID sloupce tabulky bylo zadáno několik výchozích hodnot

  4. Vytvoření pole json pomocí concat s MySql