Substitutionsvariablen werden optional durch einen Punkt abgeschlossen um sie von allen nachfolgenden Zeichen zu trennen. Wenn Sie auch eine in der Zeichenfolge verwenden möchten, müssen Sie diese Terminierung explizit hinzufügen:
spool E:\abc\Test\File1_&MYPeriod..csv
Fügen Sie für das Problem mit den zwei zusätzlichen Zeilen set verify off
; im Moment ist es auf on
gesetzt (standardmäßig), sodass es Ihnen den alten und neuen Wert aller von Ihnen verwendeten Substitutionsvariablen anzeigt.
Die einzige Möglichkeit, die ich kenne, um das Datum in den Dateinamen zu bekommen, besteht darin, es zuerst in eine Substitutionsvariable zu setzen:
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
Der new_value
-Klausel können Sie eine Substitutionsvariable &y_run_dt
erstellen in diesem Fall mit einem Wert aus einer abgefragten Spalte, x_run_dt
. Umschließen der Auswahl, die diesen Wert generiert, zwischen set termout
-Klauseln verbirgt es vor der normalen Ausgabe, wenn es als Skript ausgeführt wird.