Oracle
 sql >> Database >  >> RDS >> Oracle

Come generare istruzioni INSERT da una query quando si utilizza SQLcl (Oracle)

Quando si utilizza SQLcl con Oracle Database, è possibile impostare SQLFORMAT per insert per produrre i risultati della query come INSERT dichiarazioni.

Esempio

Ecco un esempio da dimostrare:

SET SQLFORMAT insert;
SELECT * FROM regions;

Risultato:

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.

Giusto per essere chiari, ecco i risultati della query quando si utilizza ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Risultato:

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

Esporta in un file

Se hai bisogno di salvare il INSERT istruzioni in un file, puoi usare SPOOL comando per esportare i risultati in un file.

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

Che ha esportato il risultato in un file chiamato insert_regions.sql nella posizione specificata.

Una volta che la query è stata esportata in un file, ho impostato SPOOL per off e SQLFORMAT a ansiconcole .

Ecco come appare il file risultante:

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. 

Rimuovi feedback

Puoi rimuovere il X rows selected con SET FEEDBACK off :

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

Risultato:

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');

In questo caso ho attivato FEEDBACK riattivare dopo aver esportato il file e impostare SQLFORMAT torna a ansiconsole .