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

Jak generovat příkazy INSERT z dotazu při použití SQLcl (Oracle)

Při použití SQLcl s databází Oracle můžete nastavit SQLFORMAT insert za účelem výstupu výsledků dotazu jako INSERT prohlášení.

Příklad

Zde je příklad k demonstraci:

SET SQLFORMAT insert;
SELECT * FROM regions;

Výsledek:

REM INSERTING into REGIONS
SET DEFINE OFF;
Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe');
Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas');
Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia');
Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');

4 rows selected.

Aby bylo jasno, zde jsou výsledky dotazu při použití ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Výsledek:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

Exportovat do souboru

Pokud potřebujete uložit INSERT příkazy v souboru, můžete použít SPOOL příkaz k exportu výsledků do souboru.

SET SQLFORMAT insert;
SPOOL '/Users/barney/data/insert_regions.sql';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;

Tím byl výsledek exportován do souboru s názvem insert_regions.sql na zadaném místě.

Jakmile byl dotaz exportován do souboru, nastavil jsem SPOOL na off a SQLFORMAT na ansiconcole .

Takto vypadá výsledný soubor:

REM INSERTING into REGIONS
SET DEFINE OFF;
Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe');
Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas');
Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia');
Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');

4 rows selected. 

Odebrat zpětnou vazbu

Můžete odstranit X rows selected s SET FEEDBACK off :

SET SQLFORMAT insert;
SET FEEDBACK off;
SELECT * FROM regions;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;

Výsledek:

REM INSERTING into REGIONS
SET DEFINE OFF;
Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe');
Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas');
Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia');
Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');

V tomto případě jsem otočil FEEDBACK po exportu souboru znovu zapněte a nastavte SQLFORMAT zpět na ansiconsole .


  1. Vyberte tři nejlepší hodnoty v každé skupině

  2. Dosažení limitu parametru 2100 (SQL Server) při použití Contains()

  3. Omezení cizího klíče může způsobit cykly nebo více kaskádových cest?

  4. Zobrazení seznamu PostgreSQL