我有一个从视图中提取数据并以csv格式存储在光盘上的过程。我希望文件名包含表my\u timestamps中的最新时间戳。现在看起来是这样的:
create or replace procedure write_file is
file_handle UTL_FILE.file_type;
begin
file_handle := utl_file.fopen('CSV_DIR', 'EXPORT_ABC_'|| (select to_char(max(EVENT_TS)) from MY_TIMESTAMPS) ||'.csv', 'w', 32767);
for x in (select * from V_MY_VIEW
loop utl_file.put_line (file_handle, COL1|| ',' ||
COL2|| ',' ||
COL3|| ',' ||
COL4);
end loop;
utl_file.fclose(file_handle);
end write_file;
与…有关的部分 (select to_char(max(EVENT_TS)) from MY_TIMESTAMPS)
抛出错误。如何设置此动态文件名属性?也许在程序开始时把它写到某个变量?我试着用define,但是这个错误也是。
1条答案
按热度按时间lbsnaicq1#
是的,您可以声明一个变量,以便在select语句中使用
INTO
增加条款,如其中select语句不需要异常处理。