sql >> Database teknologi >  >> RDS >> Oracle

Indsæt i tabel fra samlingstype oracle 12c - ORA-00902:ugyldig datatype

Efter omhyggeligt at have gennemgået din forespørgsel, fandt jeg ud af, at du havde ret. Insert virker ikke. Og det ser også rigtigt ud. Vi har allerede FORALL INSERT at få indsat data fra samlingen til en tabel. Derfor er det nødvendigt at have en ekstra INSERT as Select Statement er udelukket. Du kan dog bruge SELECT sætning ved hjælp af en samling i Where klausul i forespørgslen. For at lave og indsætte kan du blot følge nedenstående trin.

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

Hvis du vil bruge Type erklæret under PLSQL omfang i Select erklæring, kan du bruge som nedenfor:

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. PHP-database Ugyldigt argument angivet for foreach()

  2. MySQL 'Opdater tidsstempel'-kolonne - Trigger

  3. VENSTRE JOIN efter GROUP BY?

  4. Kan PostgreSQL-tjenesten i OpenShift-klyngen modtage ekstern trafik via eksponeret rute