基本上它是我试图通过 Oracle PL/SQL 过程执行的文本打印字母。
我的代码如下: -
DECLARE
out_file UTL_FILE.file_type; lv_file VARCHAR2 (200) DEFAULT TO_CHAR (SYSDATE, 'yyyymmddhhmiss')||'.txt' ;LVSQL varchar2(4000); lV_TXT varchar2(4000);lv_txt1 varchar2(4000);lv_final_str varchar2(4000); BEGIN out_file := UTL_FILE.fopen ('SPOOL_DIR', lv_file, 'W'); for i in 1..5 loop
begin
select tn,tt into lv_txt,lv_txt1 from
(SELECT rownum r, TNAME tn ,TABTYPE tt FROM tab) where r=j;
lv_final_str:=lV_TXT||chr(9)||lv_txt1||CHR(13);
utl_file.put_line(Out_file,lv_final_str );
end; end loop;
UTL_FILE.fclose (out_file);
END;
我可以通过将 lv_final_str 与 CHR(13) 连接并在循环中使用 *utl_file.put_line(Out_file,lv_final_str );* 来打印下一行中的值
我想通过在循环内的变量中收集文本来做同样的事情。并使用下面的代码在循环外写入变量的值。
DECLARE
out_file UTL_FILE.file_type;
lv_file VARCHAR2 (200) DEFAULT TO_CHAR (SYSDATE, 'yyyymmddhhmiss')||'.txt' ;LVSQL varchar2(4000);
lV_TXT varchar2(4000);lv_txt1 varchar2(4000);tmpvar varchar2(4000);lv_build_str varchar2(4000);lv_final_str varchar2(4000);
BEGIN
--SELECT TO_CHAR (SYSDATE, 'yyyymmddhhmiss') INTO lv_file FROM DUAL;
out_file := UTL_FILE.fopen ('SPOOL_DIR', lv_file, 'W');
for i in 1..5 loop
begin
select tn,tt into lv_txt,lv_txt1 from
(SELECT rownum r, TNAME tn ,TABTYPE tt FROM tab) where r=i;
tmpvar:=lV_TXT||chr(9)||lv_txt1||CHR(13);
lv_build_str := lv_build_str || chr(9)||tmpvar;
-- utl_file.put_line(Out_file,lv_final_str );
end;
end loop;
lv_final_str:=lv_build_str;
utl_file.put_line(Out_file,lv_final_str );
UTL_FILE.fclose (out_file);
END;
如何做到这一点,请帮助。我也使用了 chr(10),它没有在新行中打印。如果您观察到用于打印制表符空间的 chr(9) 运行良好。只有下一行 chr(10) 或 chr(13) 不起作用。为什么...?
任何帮助..我从过去 3 天开始尝试...请帮助。