Các biến thay thế là tùy chọn kết thúc bằng dấu chấm để tách chúng khỏi bất kỳ ký tự nào theo sau. Nếu bạn cũng muốn sử dụng một trong chuỗi, bạn phải thêm phần kết thúc đó một cách rõ ràng:
spool E:\abc\Test\File1_&MYPeriod..csv
Đối với sự cố hai dòng bổ sung, hãy thêm set verify off
; tại thời điểm này, nó được đặt thành on
(theo mặc định) để nó hiển thị cho bạn giá trị cũ và mới của bất kỳ biến thay thế nào mà bạn sử dụng.
Cách duy nhất tôi biết để lấy ngày vào tên tệp là đặt nó vào một biến thay thế trước:
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
mệnh đề cho phép bạn tạo một biến thay thế, &y_run_dt
trong trường hợp này, với giá trị từ cột được truy vấn, x_run_dt
. Bao bọc vùng chọn tạo ra giá trị đó giữa set termout
mệnh đề ẩn nó khỏi đầu ra bình thường, khi chạy dưới dạng tập lệnh.