Domanda

Qualcuno ha un buon set di direttive di configurazione sqlplus per aiutare a trasformare una determinata query sql in output ben separati da tabulazione per essere inseriti in un foglio di calcolo o per ulteriori elaborazioni?

È stato utile?

Soluzione

Consulta la documentazione di Oracle:

È possibile generare una scheda in Oracle utilizzando il valore ASCII della scheda 9 e la funzione chr:

select chr(9) from dual;

Altri suggerimenti

Come ha sottolineato Justin nel suo link, usando la funzione set colsep il comando SQLPlus salva la digitazione di un separatore per ogni colonna.

Ma per delimitato da tabulazioni, set colsep Chr (9) non funzionerà.

Per UNIX o LINUX, utilizzare set colsep '' con lo spazio tra le virgolette singole in una scheda digitata.

Per Windows, utilizzare queste impostazioni:

col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"

select * from table;

Uno script particolare che ho rubato in più di un'occasione proviene da un thread AskTom su estrazione dei dati in un file flat . Se avessi bisogno di un file flat rapido e sporco da SQL * Plus. Preferirei preferire la funzione DUMP_CSV che Tom ha pubblicato in precedenza su quel thread per qualsiasi tipo di processo in corso, tuttavia.

Ho una soluzione stupida. Ha funzionato molto bene.

Soluzione

SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table

principio dietro

In realtà, è solo una concatenazione di stringhe .

CHR (9) - > '\ t'

colonna1 || CHR (9) || colonna2 - > concat (colonna1, '\ t', colonna2)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top