Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wstawianie wielu wierszy do Oracle

Z punktu widzenia wydajności te zapytania są identyczne.

UNION ALL nie zaszkodzi wydajności, ponieważ Oracle szacuje UNION Zapytanie tylko wtedy, gdy tego potrzebuje, nie buforuje wyników w pierwszej kolejności.

SELECT składnia jest bardziej elastyczna w tym sensie, że możesz łatwiej manipulować SELECT zapytaj, jeśli chcesz coś zmienić.

Na przykład to zapytanie:

insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
          select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual

można przepisać jako

INSERT
INTO    pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
SELECT  7999 + level, 0, 'Multi ' || 7999 + level, 1
FROM    dual
CONNECT BY
        level <= 2

Zastępując 2 przy odpowiedniej liczbie możesz uzyskać dowolną liczbę wierszy.

W przypadku INSERT ALL , musiałbyś zduplikować opis tabeli docelowej, który jest mniej czytelny, jeśli potrzebujesz, powiedzmy, 40 wiersze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj instrukcję za pomocą klauzuli

  2. .patch_storage

  3. Strona główna Oracle tylko do odczytu

  4. ORA-30926:nie można uzyskać stabilnego zestawu wierszy w tabelach źródłowych

  5. Agent jest zablokowany