1、使用DEFAULT_WHERE:
DECLARE
V_DEFAULT_WHERE VARCHAR2(32767);
V_WHERE VARCHAR2(32767);
BEGIN
--获取系统默认的查询条件
V_DEFAULT_WHERE := GET_BLOCK_PROPERTY(:SYSTEM.CURSOR_BLOCK, DEFAULT_WHERE);
--根据查询条件是否有WHERE拼接SQL
IF V_DEFAULT_WHERE IS NULL THEN
V_WHERE := V_DEFAULT_WHERE || ' WHERE 1 = 1 ';
ELSE
V_WHERE := V_DEFAULT_WHERE || ' AND 1 = 1 ';
END IF;
--拼接其它查询条件 BEGIN--
--
--
--拼接其它查询条件 END--
SET_BLOCK_PROPERTY(:SYSTEM.CURSOR_BLOCK, DEFAULT_WHERE, V_WHERE); --将新的查询条件赋值给这个BLOCK的DEFAULT_WHERE进行查询
--清空,否则FORM下次查询的时候会把前一次的条件带入
CLEAR_RECORD;
EXECUTE_QUERY;
--将原默认的DEFAULT_WHERE值重新恢复回去
SET_BLOCK_PROPERTY(:SYSTEM.CURSOR_BLOCK, DEFAULT_WHERE, V_DEFAULT_WHERE);
END;
2、…
3、…