Променливите за заместване са по избор прекратени с точка за да ги отделите от всички знаци, които следват. Ако искате да използвате такъв и в низа, трябва изрично да добавите това завършване:
spool E:\abc\Test\File1_&MYPeriod..csv
За проблема с двата допълнителни реда добавете set verify off
; в момента е зададено на on
(по подразбиране), така че ви показва старата и новата стойност на всички променливи за заместване, които използвате.
Единственият начин, който знам, за да вкарам датата в името на файла, е първо да я поставя в заместваща променлива:
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
new_value
клауза ви позволява да създадете заместваща променлива, &y_run_dt
в този случай със стойност от заявена колона, x_run_dt
. Обвиване на избраното, което генерира тази стойност между set termout
клаузи го скрива от нормалния изход, когато се изпълнява като скрипт.