【发布时间】:2020-01-20 09:31:35
【问题描述】:
我有输入访问号码和搜索记录的程序。但是这个程序搜索记录需要一些时间 3 到 4 分钟,并且块有 12672 条记录。如何优化程序以快速搜索记录。
代码:
DECLARE
BEGIN
IF :CTRL_BLOCK.SRCH_VISITNO IS NULL THEN
MESSAGE('Please enter Visit No...');
GO_ITEM('SRCH_VISITNO');
ELSE
BEGIN
GO_BLOCK('cpvdtl');
FIRST_RECORD;
LOOP
IF :cpvdtl.visitno = :CTRL_BLOCK.srch_visitno THEN
exit;
ELSE
NEXT_RECORD;
END IF;
EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('No Data found...!');
END;
END IF;
:CTRL_BLOCK.srch_visitno := null;
go_item('cpvdtl.visitno');
END;
【问题讨论】:
-
您通常不会搜索表单块,这会很慢。您通常搜索数据库并将结果显示在一个块中。
-
@Tony Andrews 当表单打开时,记录已经显示在数据块上。然后具体不搜索数据块
-
是的,这就是我的观点——应该对数据块进行搜索:-)
标签: oracle oracle11g oracleforms