Substitutionsvariabler är valfritt avslutade med en period för att skilja dem från alla tecken som följer. Om du vill använda en i strängen också, måste du lägga till den avslutningen uttryckligen:
spool E:\abc\Test\File1_&MYPeriod..csv
För problemet med två extra rader, lägg till aktivera verifiering
; för tillfället är den inställd på on
(som standard) så att den visar dig det gamla och nya värdet för alla substitutionsvariabler du använder.
Det enda sättet jag vet för att få in datumet i filnamnet är att först lägga in det i en ersättningsvariabel:
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
sats låter dig skapa en ersättningsvariabel, &y_run_dt
i det här fallet, med ett värde från en frågad kolumn, x_run_dt
. Slå in markeringen som genererar det värdet mellan set termout
satser döljer den från den normala utdatan när den körs som ett skript.