Home » Non-English Forums » Spanish » Muchas inserciones a la vez (Oracle, 10g Express Edition, Debian GNU/Linux)
Muchas inserciones a la vez [message #408976] Thu, 18 June 2009 09:59 Go to next message
cyb3rpunk
Messages: 2
Registered: June 2009
Junior Member
Hola, soy nuevo en este foro así como en Oracle.

Mi pregunta es si existe alguna manera de hacer muchas inserciones a una tabla en un solo comando.
Para las prácticas que estoy realizando ocupo bastantes filas de datos e insertar de una por una es bastante tedioso.

Gracias de antemano.
Re: Muchas inserciones a la vez [message #409054 is a reply to message #408976] Fri, 19 June 2009 01:55 Go to previous messageGo to next message
Barbara Boehmer
Messages: 8007
Registered: November 2002
Location: California, USA
Senior Member
SCOTT@orcl_11g> CREATE TABLE test_tab (test_col NUMBER)
  2  /

Table created.

SCOTT@orcl_11g> INSERT ALL
  2  INTO test_tab VALUES (1)
  3  INTO test_tab VALUES (2)
  4  INTO test_tab VALUES (3)
  5  SELECT * FROM DUAL
  6  /

3 rows created.

SCOTT@orcl_11g> SELECT * FROM test_tab
  2  /

  TEST_COL
----------
         1
         2
         3

SCOTT@orcl_11g> 

Re: Muchas inserciones a la vez [message #409236 is a reply to message #408976] Sat, 20 June 2009 20:25 Go to previous messageGo to next message
cyb3rpunk
Messages: 2
Registered: June 2009
Junior Member
Muchas gracias.

Me pregunto por que habrá que hacer referencia a la tabla DUAL.
Re: Muchas inserciones a la vez [message #409247 is a reply to message #409236] Sun, 21 June 2009 02:28 Go to previous message
Barbara Boehmer
Messages: 8007
Registered: November 2002
Location: California, USA
Senior Member
Con "insert all" se debe seleccionar de "dual" o algún otro tabla.

SCOTT@orcl_11g> CREATE TABLE test_tab (test_col NUMBER)
  2  /

Table created.

SCOTT@orcl_11g> INSERT ALL
  2  INTO test_tab VALUES (1)
  3  INTO test_tab VALUES (2)
  4  INTO test_tab VALUES (3)
  5  /
INTO test_tab VALUES (3)
                       *
ERROR at line 4:
ORA-00928: falta la palabra clave SELECT


SCOTT@orcl_11g> SELECT * FROM test_tab
  2  /

no rows selected

SCOTT@orcl_11g> INSERT ALL
  2  INTO test_tab VALUES (deptno)
  3  INTO test_tab VALUES (deptno+1)
  4  INTO test_tab VALUES (deptno+2)
  5  SELECT deptno FROM dept
  6  /

12 rows created.

SCOTT@orcl_11g> SELECT * FROM test_tab
  2  /

  TEST_COL
----------
        10
        20
        30
        40
        11
        21
        31
        41
        12
        22
        32
        42

12 rows selected.

SCOTT@orcl_11g>

Previous Topic: Nuevo sitio - Comunidad Oracle Hispana
Next Topic: Error en Portal (Incollect)
Goto Forum:
  


Current Time: Fri Nov 28 01:34:31 CST 2014

Total time taken to generate the page: 0.05372 seconds