sql >> Database >  >> RDS >> Oracle

Hoe INSERT-statements uit een query te genereren bij gebruik van SQLcl (Oracle)

Wanneer u SQLcl gebruikt met Oracle Database, kunt u SQLFORMAT . instellen om insert om de queryresultaten uit te voeren als INSERT verklaringen.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SET SQLFORMAT insert;
SELECT * FROM regions;

Resultaat:

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.

Voor de duidelijkheid, hier zijn de zoekresultaten bij gebruik van ansiconsole :

SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

Resultaat:

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

Exporteren naar een bestand

Als u de INSERT . wilt opslaan instructies in een bestand, kunt u de SPOOL commando om de resultaten naar een bestand te exporteren.

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

Dat exporteerde het resultaat naar een bestand met de naam insert_regions.sql op de opgegeven locatie.

Nadat de query naar een bestand is geëxporteerd, stel ik SPOOL . in naar off en SQLFORMAT naar ansiconcole .

Zo ziet het resulterende bestand eruit:

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 verwijderen

U kunt de X rows selected met SET FEEDBACK off :

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

Resultaat:

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 dit geval draaide ik FEEDBACK weer aan na het exporteren van het bestand, en stel SQLFORMAT in terug naar ansiconsole .


  1. Hoe meerdere rijen uit de opgeslagen procedure te retourneren? (Oracle PL/SQL)

  2. Hoe controleer ik of er een opgeslagen procedure bestaat?

  3. Controleren of een T-SQL UDF schemagebonden is (zelfs als het versleuteld is)

  4. Oracle 9i Developer Suite 2.0 installeren op Windows