Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment générer des instructions INSERT à partir d'une requête lors de l'utilisation de SQLcl (Oracle)

Lorsque vous utilisez SQLcl avec Oracle Database, vous pouvez définir SQLFORMAT pour insert afin de sortir les résultats de la requête sous la forme INSERT déclarations.

Exemple

Voici un exemple pour illustrer :

SET SQLFORMAT insert;
SELECT * FROM regions;

Résultat :

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.

Juste pour être clair, voici les résultats de la requête lors de l'utilisation de ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Résultat :

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

Exporter vers un fichier

Si vous avez besoin de stocker le INSERT déclarations dans un fichier, vous pouvez utiliser le SPOOL commande pour exporter les résultats dans un fichier.

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

Cela a exporté le résultat dans un fichier appelé insert_regions.sql à l'emplacement spécifié.

Une fois la requête exportée vers un fichier, j'ai défini SPOOL à off et SQLFORMAT à ansiconcole .

Voici à quoi ressemble le fichier résultant :

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. 

Supprimer les commentaires

Vous pouvez supprimer le X rows selected avec SET FEEDBACK off :

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

Résultat :

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

Dans ce cas, j'ai activé FEEDBACK après avoir exporté le fichier, et définissez SQLFORMAT retour à ansiconsole .