Oracle
 sql >> Database >  >> RDS >> Oracle

Problemi quando l'utente inserisce i dati nel comando sql

Le variabili di sostituzione sono facoltativamente terminate da un punto per separarli da tutti i caratteri che seguono. Se vuoi usarne anche uno nella stringa, devi aggiungere esplicitamente quella terminazione:

spool E:\abc\Test\File1_&MYPeriod..csv

Per il problema delle due righe extra, aggiungi set verify off ; al momento è impostato su on (per impostazione predefinita) quindi mostra il vecchio e il nuovo valore di qualsiasi variabile di sostituzione che utilizzi.

L'unico modo che conosco per ottenere la data nel nome del file è inserirla prima in una variabile di sostituzione:

set termout off
column x_run_dt new_value y_run_dt
select to_char(sysdate, 'YYYYMMDDHH24MISS') as x_run_dt from dual;
set termout on
spool E:\abc\Test\File1_&MYPeriod._&y_run_dt..csv

Il new_value La clausola ti consente di creare una variabile di sostituzione, &y_run_dt in questo caso, con un valore da una colonna interrogata, x_run_dt . Avvolgere la selezione che genera quel valore tra set termout clausole lo nasconde dall'output normale, quando viene eseguito come script.