Относительно множественной вставки строк в одном запросе. (Оракул) - PullRequest
1 голос
/ 24 февраля 2011

Является ли механизм, используемый для множественной вставки строк в таблицу с помощью одного запроса, таким же, как механизм вставки одной строки с одним запросом.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Если вы выбираете данные из существующей таблицы, вы можете использовать INSERT INTO TABLE3 ( SELECT * FROM TABLE1 UNION SELECT * FROM TABLE2 ....), чтобы выбрать и вставить данные за один раз.


SQL> SELECT * FROM SCOTT.EMP WHERE JOB = 'ANALYST1';

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO GENDER
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- --------
      8909 LUTHAR     ANALYST1        7698 22-JUL-99       1232        788         50 F
      8999 AMAN       ANALYST1        7698 22-JUL-99       8569        788         50 M
      7788 SCOTT      ANALYST1        7566 19-APR-87       3000        150            M
      7902 2          ANALYST1        7566 03-DEC-81       3000                       M


SQL> SELECT * FROM SCOTT.EMP WHERE JOB = 'MANAGER';

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO GENDER
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------
      7566 5          MANAGER         7839 02-APR-81       2975        150            F
      7698 10000      MANAGER         7839 01-MAY-81       2850        150            F
      7782 CLARK      MANAGER         7839 09-JUN-81       2450        150            F

SQL> CREATE TABLE EMP1 AS ( SELECT * FROM SCOTT.EMP WHERE 1=2);

Table created.

SQL> SELECT * FROM EMP1;

no rows selected

SQL> INSERT INTO EMP1 ( SELECT * FROM SCOTT.EMP WHERE JOB = 'ANALYST1'
  2  UNION
  3  SELECT * FROM SCOTT.EMP WHERE JOB = 'MANAGER');

7 rows created.

SQL> SELECT * FROM EMP1;
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO GENDER
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- --------
      7566 5          MANAGER         7839 02-APR-81       2975        150            F
      7698 10000      MANAGER         7839 01-MAY-81       2850        150            F
      7782 CLARK      MANAGER         7839 09-JUN-81       2450        150            F
      7788 SCOTT      ANALYST1        7566 19-APR-87       3000        150            M
      7902 2          ANALYST1        7566 03-DEC-81       3000                       M
      8909 LUTHAR     ANALYST1        7698 22-JUL-99       1232        788         50 F
      8999 AMAN       ANALYST1        7698 22-JUL-99       8569        788         50 M

7 rows selected.
0 голосов
/ 24 февраля 2011

Вы можете объединить много операторов SQL в одном запросе Oracle, разделяя каждую команду SQL точкой с запятой. Например: ВСТАВИТЬ В СТОИМОСТЬ СТОЛ (1,2); ВСТАВИТЬ В СТОИМОСТЬ СТОЛ (3,4);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...