oracle forms PL/SQL 带暂停的循环

oracle forms PL/SQL loop with pause

我需要你的帮助来创建循环,该循环将遍历行并从每一行创建 txt 文件参数。 使用我当前的代码,我无法再进行第一个记录,因为它太快了(至少我认为这是原因)。我想在每一行之间添加两秒钟的停顿,但我不确定如何去做。 感谢您的帮助!

PROCEDURE CREATE_TXT_FILE IS
out_file TEXT_IO.FILE_TYPE;
  tmp_file varchar2(100);
  out_str varchar2(100);    
  tmp_str  varchar2(100);
  data_str   varchar2(100); 

BEGIN
      go_block('Block1');
  FIRST_RECORD;
  LOOP


 TMP_FILE := 'C:\txt_files;'      ------directory
  TMP_FILE := TMP_FILE || 'test';                 ------document name



  begin
    out_file := TEXT_IO.FOPEN(tmp_file, 'W');
  exception
    WHEN OTHERS THEN
         bell;
         message('Can''t open file to write.' || tmp_file,acknowledge);
         raise form_trigger_failure;

  END;

 --parameters for text file



  data_str := :block1.column1 ||:block1.column2||:block1.column3||:block1.column4||;
  out_str := out_str || data_str;


  begin
    TEXT_IO.PUT_LINE(out_file, out_str);
  exception when others then
    message('Error to write string to output file. Export is aborted',acknowledge);
    raise form_trigger_failure;
  end;



  TEXT_IO.fclose(out_file);


  message('Done', no_acknowledge);
  synchronize;



        EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
            NEXT_RECORD;
            END LOOP;   
END;

您不应该 open/close 循环中的文件。换句话说:

  • 打开文件
  • 循环
    • 写入文件
  • 结束循环
  • 关闭文件

暂停没有用,只会让整个代码变慢。如果你想知道发生了什么,要么

  • 运行 处于调试模式的表单(如果您的表单版本允许;9i 以后)或
  • message 个调用放入其中

这样你就可以跟着执行了。