Las variables de sustitución opcionalmente terminan con un punto para separarlos de los caracteres que siguen. Si también desea usar uno en la cadena, debe agregar esa terminación explícitamente:
spool E:\abc\Test\File1_&MYPeriod..csv
Para el problema de las dos líneas adicionales, agregue set verify off
; en este momento está configurado en on
(de forma predeterminada) para que le muestre el valor antiguo y el nuevo de cualquier variable de sustitución que utilice.
La única forma que conozco de incluir la fecha en el nombre del archivo es ponerlo primero en una variable de sustitución:
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
El new_value
cláusula le permite crear una variable de sustitución, &y_run_dt
en este caso, con un valor de una columna consultada, x_run_dt
. Envolviendo la selección que genera ese valor entre set termout
las cláusulas lo ocultan de la salida normal, cuando se ejecuta como un script.