问题描述
我有以下问题。 我有一个带有以下 sql 查询的 popUp-lov 类型的页面元素:
SELECT u.Lastname || ',' || u.Firstname AS displayed,u.UUID as ID
from STAFF s
left outer join USERS u on s.UUID=u.UUID
union
SELECT u2.Lastname || ',' || u2.Firstname AS displayed,m.MAID AS ID
FROM MANAGER m
left outer join USERS u2 on m.UUID=u2.UUID
通过这种方式,我想从两个表中向用户展示可供选择的人。 但是,我希望一旦用户选择了一个人,就设置了相应表的外键。 这些表的外键将保存在单独的列中。换句话说,我创建了两个隐藏的页面项目,每个项目都有一个对应表的外键约束。根据值列表的返回值,我想然后在相应的页面项目中设置页面项目(一个为空)。
为了实现这一点,我首先创建了一个函数来检查 lov 的返回值是否作为 ID 在表中。
create or replace function search_id (p_key_value in number)
return number
is
found_person number;
begin
select m.ID into found_person from MANAGER m where p_key_value=m.ID ;
if sql%rowcount = 1 then
return found_person;
end if ;
exception
when no_data_found then
return null;
end;
SELECT u.Lastname || ',u.UUID as ID
from USERS u
and u.UUID in (select u.UUID
from STAFF s
left outer join USERS u on s.UUID=u.UUID)
OR u.UUID in (select u.UUID
from MANAGER m
left outer join USERS u on m.UUID=u.UUID)
改变的功能:
create or replace function search_id(p_key_value in number)
return number
is
found_person number;
begin
select s.STID
into found_person
from STAFF s
where s.UUID=p_key_value;
if sql%rowcount = 1 then
return found_person;
end if ;
exception
when no_data_found then
select m.MID
into found_person
from MANAGER m
where m.UUID=p_key_value;;
end;
动态动作: 然后,我使用弹出的 lov 为页面项创建了一个动态操作。 当页面项更改时(因此当用户从 lov 中选择一个值时)会触发动态操作。
declare
found_person number;
begin
found_person:= search_id(V('P12_RESPONSIBLE'));
apex_util.set_session_state('P12_MANAGER_ID',found_person);
apex_util.set_session_state('P12_STAFF_ID',found_person);
exception
when no_data_found then
null;
end;
提交项目:P12_RESPONSIBLE 返回项目:P12_MANAGER_ID,P12_STAFF_ID
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)