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
个调用放入其中
这样你就可以跟着执行了。
我需要你的帮助来创建循环,该循环将遍历行并从每一行创建 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
个调用放入其中
这样你就可以跟着执行了。