Vervangingsvariabelen worden optioneel beëindigd met een punt om ze te scheiden van alle tekens die volgen. Als je er ook een in de string wilt gebruiken, moet je die beëindiging expliciet toevoegen:
spool E:\abc\Test\File1_&MYPeriod..csv
Voeg voor het probleem met twee extra regels set verify off
; op dit moment is het ingesteld op on
(standaard) zodat het u de oude en nieuwe waarde toont van alle vervangingsvariabelen die u gebruikt.
De enige manier die ik weet om de datum in de bestandsnaam te krijgen, is door deze eerst in een vervangingsvariabele te plaatsen:
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
De new_value
clausule laat je een vervangingsvariabele maken, &y_run_dt
in dit geval, met een waarde uit een opgevraagde kolom, x_run_dt
. De selectie die die waarde genereert verpakken tussen set termout
clausules verbergt het voor de normale uitvoer, wanneer het wordt uitgevoerd als een script.