sql >> Databasteknik >  >> RDS >> Oracle

Hur man genererar INSERT-satser från en fråga när du använder SQLcl (Oracle)

När du använder SQLcl med Oracle Database kan du ställa in SQLFORMAT att insert för att mata ut frågeresultaten som INSERT uttalanden.

Exempel

Här är ett exempel att visa:

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.

Bara för att vara tydlig, här är frågeresultaten när du använder ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Resultat:

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

Exportera till en fil

Om du behöver lagra INSERT uttalanden i en fil kan du använda SPOOL kommando för att exportera resultaten till en fil.

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

Som exporterade resultatet till en fil som heter insert_regions.sql på den angivna platsen.

När frågan exporterades till en fil ställde jag in SPOOL till off och SQLFORMAT till ansiconcole .

Så här ser den resulterande filen ut:

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. 

Ta bort feedback

Du kan ta bort 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 det här fallet vände jag till FEEDBACK på igen efter att ha exporterat filen och ställ in SQLFORMAT tillbaka till ansiconsole .


  1. Dynamisk Oracle Pivot_In_Clause

  2. Hur konverterar man radvärden till kolumner med dynamiska kolumner?

  3. MySQL DROP-KOLUMN

  4. Bästa sättet att lagra tid (tt:mm) i en databas