Cómo insert varias filas en la misma tabla-Oracle 10g

Creé una tabla en Oracle SQL :

 create table t1 ( empno number(6) PRIMARY KEY, empname varchar(30), hinetworkingate date, basic number(8), deptno number(4) ); 

Y ahora estoy insertando valores en la tabla con una sola consulta :

 insert into t1 values((131309,'HP','20-FEB-04',2000000,1235) (131310,'HT','20-APR-14',120020,1234)); 

Pero esto muestra un error:

 insert into t1 values((131309,'HP','20-FEB-04',2000000,1235), * ERROR at line 1: ORA-00907: missing right parenthesis 

¿Cómo puedo corregir esto?

Una INSERT VALUES siempre inserta exactamente 1 fila. Si desea insert varias filas con valores codificados, el enfoque más común sería simplemente ejecutar dos INSERT separadas.

 insert into t1 values(131309,'HP','20-FEB-04',2000000,1235); insert into t1 values(131310,'HT','20-APR-14',120020,1234); 

Si realmente quisiera, podría seleccionar los valores codificados de dual y luego hacer un INSERT SELECT

 insert into t1 select 131309, 'HP', '20-FEB-04',2000000,1235 from dual union all select 131310,'HT','20-APR-14',120020,1234 from dual 

O podrías hacer un INSERT ALL

 insert all into t1 values(131309,'HP','20-FEB-04',2000000,1235) into t1 values(131310,'HT','20-APR-14',120020,1234) select * from dual 

Personalmente, usaría dos declaraciones.

Aunque esto no está relacionado con tu pregunta, un par de comentarios

  • Siempre, siempre liste las columnas en su statement de insert . Harás que tu SQL sea mucho más robusto, de modo que si agregas nuevas columnas en el futuro que permiten valores NULL , tus afirmaciones seguirán funcionando. Y evitará muchos errores cuando la list de columnas esté allí en lugar de esperar que alguien recuerde el order de las columnas en la tabla.
  • Si está insertando un valor en una columna de date , use una date, no un literal de cadena que represente una date. Confiar en la conversión de types de datos implícitos es una fuente de muchos errores. Use un to_date explícito o use literales de date ANSI. Y usa años de 4 dígitos.