sql >> Databáze >  >> RDS >> Oracle

Jak mohu importovat oddíl z jedné tabulky do druhé v Oracle?

Něco podobného můžete udělat s ALTER TABLE ... EXCHANGE PARTITION příkaz. To by vyměnilo jeden oddíl za tabulku, která má stejnou strukturu.

Malý příklad:

/* Partitionned Table Creation */
SQL> CREATE TABLE table_a (
  2     ID NUMBER PRIMARY KEY,
  3     DATA VARCHAR2(200)
  4  )
  5  PARTITION BY RANGE (ID) (
  6     PARTITION part100 VALUES LESS THAN (100),
  7     PARTITION part200 VALUES LESS THAN (200)
  8  );

Table created

/* Swap table creation */
SQL> CREATE TABLE swap_table (
  2     ID NUMBER PRIMARY KEY,
  3     DATA VARCHAR2(200)
  4  );

Table created

SQL> INSERT INTO swap_table SELECT ROWNUM, 'a' FROM dual CONNECT BY LEVEL <= 99;

99 rows inserted

SQL> select count(*) from table_a partition (part100);

  COUNT(*)
----------
         0

Tím dojde k výměně oddílu part100 s tabulkou přechodů swap_table :

SQL> ALTER TABLE table_a EXCHANGE PARTITION part100 WITH TABLE swap_table;

Table altered

SQL> select count(*) from table_a partition (part100);

  COUNT(*)
----------
        99



  1. Jak načíst pole z výsledku dotazu MySQL v bash

  2. Zjistěte, zda má uživatel oprávnění vybrat/aktualizovat/... tabulku/funkci/... v PostgreSQL

  3. Jak předat název schématu a název tabulky jako vstup a poté získat velikost paměti a row_count jako výstup v plsql

  4. Rozdíl mezi tabulkou DELETE a TRUNCATE na serveru SQL Server