Ich habe ein Verzeichnis erstellt und einen anonymen Block erstellt, um eine Datei darin zu erstellen. Jedesmal, wenn ich den Block ausführe, wird die Datei überschrieben. Ich brauche es als neue Datei erstellt werden. Was soll ich tun, um dies zu erreichen?Verzeichniserstellung Dateiname
DECLARE
v_name utl_file.file_type;
v_count NUMBER := 0;
BEGIN
v_name := utl_file.fopen('PLSQL_DIR', 'Task1.txt', 'W');
utl_file.put_line(
v_name,
TO_CHAR(SYSDATE, 'DD/MM/YY/HH/MI')||' Data Migration Starts'
);
FOR i IN (SELECT * FROM sue_par_det_tb) LOOP
utl_file.put_line(
v_name,
i.patient_name||', '|| i.ord_date||', '|| i.mobile_number||', '|| i.refered_by
);
v_count := v_count + 1;
END LOOP;
utl_file.put_line(
v_name,
v_count||' Rows generated at '||TO_CHAR(SYSDATE, 'DD/MM/YY/HH24/MI')
);
utl_file.fclose(v_name);
END;
/
Sie bitte Ihre Frage bearbeiten und Ihren Code hinzufügen. Wenn Sie denselben Dateinamen verwenden, schreibt Oracle in die gleiche Datei. –
DECLARE \t v_name \t utl_file.file_type; \t v_count \t NUMMER: = 0; BEGINN \t v_name: = utl_file.fopen ('PLSQL_DIR', 'Task1.txt', 'W'); \t utl_file.put_line (v_name, TO_CHAR (SYSDATE, 'TT/MM/JJ/HH/MI') || 'Datenmigration beginnt'); \t FOR i IN (SELECT * FROM sue_par_det_tb) \t \t LOOP \t \t utl_file.put_line (v_name, \t \t \t \t \t \t i.patient_name || '' || \t \t \t \t \t \t i. ord_date || ' '|| \t \t \t \t \t \t i.mobile_number ||',' || \t \t \t \t \t \t i.refered_by); \t \t v_count: = v_count + 1; \t \t ENDSCHLEIFE; \t utl_file.put_line (v_name, v_count || 'Zeilen generiert bei' || TO_CHAR (SYSDATE, 'DD/MM/YY/HH24/MI')); \t utl_file.fclose (v_name); ENDE; / –
In der obigen Abfrage muss ich eine doppelte Datei erstellen, um es n-mal auszuführen. –