Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Probleme bei der Benutzereingabe von Daten im SQL-Befehl

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.