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

Sådan genereres INSERT-sætninger fra en forespørgsel, når du bruger SQLcl (Oracle)

Når du bruger SQLcl med Oracle Database, kan du indstille SQLFORMAT at insert for at udlæse forespørgselsresultaterne som INSERT udsagn.

Eksempel

Her er et eksempel til demonstration:

SET SQLFORMAT insert;
SELECT * FROM regions;

Resultat:

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.

Bare for at være klar, her er forespørgselsresultaterne, når du bruger ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Resultat:

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

Eksporter til en fil

Hvis du har brug for at gemme INSERT sætninger i en fil, kan du bruge SPOOL kommando for at eksportere resultaterne til en fil.

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

Det eksporterede resultatet til en fil kaldet insert_regions.sql på det angivne sted.

Når forespørgslen blev eksporteret til en fil, indstillede jeg SPOOL til off og SQLFORMAT til ansiconcole .

Sådan ser den resulterende fil ud:

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. 

Fjern feedback

Du kan fjerne X rows selected med SET FEEDBACK off :

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

Resultat:

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

I dette tilfælde har jeg slået FEEDBACK igen efter eksport af filen, og indstil SQLFORMAT tilbage til ansiconsole .


  1. MySQL få rækkeposition i BESTIL EFTER

  2. Sådan finder du intervallet mellem to datoer i PostgreSQL

  3. Sådan opretter du MySQL-visning

  4. MariaDB og Docker use cases, del 1