Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como gerar instruções INSERT de uma consulta ao usar SQLcl (Oracle)


Ao usar SQLcl com Oracle Database, você pode definir SQLFORMAT para insert para gerar os resultados da consulta como INSERT declarações.

Exemplo


Segue um exemplo para demonstrar:
SET SQLFORMAT insert;
SELECT * FROM regions;

Resultado:
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.

Apenas para esclarecer, aqui estão os resultados da consulta ao usar o ansiconsole :
SET SQLFORMAT ansiconsole;
SELECT * FROM regions;

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

Exportar para um arquivo


Se você precisar armazenar o INSERT instruções em um arquivo, você pode usar o SPOOL comando para exportar os resultados para um arquivo.
SET SQLFORMAT insert;
SPOOL '/Users/barney/data/insert_regions.sql';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;

Isso exportou o resultado para um arquivo chamado insert_regions.sql no local especificado.

Depois que a consulta foi exportada para um arquivo, configurei SPOOL para off e SQLFORMAT para ansiconcole .

Aqui está a aparência do arquivo resultante:
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. 

Remover comentários


Você pode remover o X rows selected com SET FEEDBACK off :
SET SQLFORMAT insert;
SET FEEDBACK off;
SELECT * FROM regions;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;

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

Neste caso eu virei FEEDBACK depois de exportar o arquivo e defina SQLFORMAT de volta ao ansiconsole .