Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So generieren Sie INSERT-Anweisungen aus einer Abfrage bei Verwendung von SQLcl (Oracle)

Wenn Sie SQLcl mit Oracle Database verwenden, können Sie SQLFORMAT festlegen zum insert um die Abfrageergebnisse als INSERT auszugeben Aussagen.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SET SQLFORMAT insert;
SELECT * FROM regions;

Ergebnis:

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.

Nur um es klarzustellen, hier sind die Abfrageergebnisse bei Verwendung von ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Ergebnis:

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

In eine Datei exportieren

Wenn Sie INSERT speichern müssen Anweisungen in einer Datei können Sie den SPOOL verwenden Befehl zum Exportieren der Ergebnisse in eine Datei.

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

Dadurch wurde das Ergebnis in eine Datei namens insert_regions.sql exportiert am angegebenen Ort.

Nachdem die Abfrage in eine Datei exportiert wurde, setze ich SPOOL auf off und SQLFORMAT zu ansiconcole .

So sieht die resultierende Datei aus:

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. 

Feedback entfernen

Sie können das X rows selected mit SET FEEDBACK off :

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

Ergebnis:

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 diesem Fall habe ich mich an FEEDBACK gewandt nach dem Exportieren der Datei wieder ein und setzen Sie SQLFORMAT zurück zu ansiconsole .