gpt4 book ai didi

oracle - 如何获取 oracle 表单使用 Enter-query 操作生成的默认数据 block

转载 作者:行者123 更新时间:2023-12-04 02:57:33 25 4
gpt4 key购买 nike

我正在使用 oracle forms 6i。

只是我正在使用这些项目的数据库 block :

Employees:    employee_id , job_id , department_id , manager_id

注意:employees 是数据 block 名称。

例如:当终端用户点击enter-query按钮,在department_id项中写入50,然后点击execute-query按钮;数据 block 将返回部门 50 中的所有员工。

我的问题是:如何获取 oracle 表单在返回所需数据时生成的 WHERE CLAUSE?...

我在预查询触发器中使用了这段代码

:parameters.whr:=get_block_property('employees',default_where);

但是没有返回结果

最佳答案

接近,但还不够接近。它是您需要的 GET_BLOCK_PROPERTY,但使用它的 LAST_QUERY 参数。它将返回指定 block 中最后一个查询的SQL语句。

或者,使用系统变量 :SYSTEM.LAST_QUERY(返回相同的结果)。

下面是一个例子(下面的代码可以放在 employees block 的 KEY-EXEQRY 触发器中):

declare
l_lastq varchar2(4000);
l_where_position number;
l_where_clause varchar2(4000);
begin
execute_query;
l_lastq := :system.last_query;
l_where_position := instr(lower(l_lastq), 'where');

if l_where_position > 0 then
l_where_clause := substr(l_lastq, l_where_position, length(l_lastq));
message('WHERE clause: ' || l_where_clause);
end if;
end;

关于oracle - 如何获取 oracle 表单使用 Enter-query 操作生成的默认数据 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com