我对经典报告有疑问,它基于多个表连接。我已经编写了循环并仅插入选中的框项目的进程。但它只选择第一项。但是,如果在单个表上执行此操作,则它可以正常工作如果有人可以在查询基于多个连接时帮助我插入所选记录,我将不胜感激。
我的查询如下。
select apex_item.checkbox2(1, ord.rowid) sel,
apex_item.text(2,cust.name) Customer,
apex_item.text(3, it.item_id) Item,
apex_item.text(4,it.product_id) Product,
apex_item.text(5,price) price,
apex_item.text(6,quantity)||apex_item.hidden(7,ord.id) qty
from s_ord ord,
s_item it,
s_customer cust
where ord.id=it.ord_id
and cust.id=ord.customer_id
我的流程如下;
for i in 1..apex_application.g_f01.count loop
APEX_DEBUG_MESSAGE.LOG_MESSAGE(p_message => 'G_F01 : '||APEX_APPLICATION.G_F01(i), p_level => 1);
APEX_DEBUG_MESSAGE.LOG_MESSAGE(p_message => ' Q1 : '||APEX_APPLICATION.G_F02(i), p_level => 1);
APEX_DEBUG_MESSAGE.LOG_MESSAGE(p_message => ' P1 : '||APEX_APPLICATION.G_F03(i), p_level => 1);
end loop;
end;
答案 0 :(得分:1)
据我所知,如果将表格形式创建为两个(或更多)表的JOIN
(不调查原因),则不能这样做。
这就是我的所作所为:
JOIN
s)获取的列
这解决了这个问题。
例如:您想要更新员工的信息,但也要显示他们所在的部门名称。
不要:
select e.empno,
e.ename,
d.dname,
e.sal
from emp e join dept d on e.deptno = d.deptno;
执行:
create function f_dname (par_deptno in dept.deptno%type)
return dept.dname%type
is
retval dept.dname%type;
begin
select max(d.dname)
into retval
from dept d
where d.deptno = par_deptno;
return retval;
end;
/
select e.empno,
e.ename,
f_dname (e.deptno) dname, --> function instead of DEPT.DNAME
e.sal
from emp e; --> no join
我希望它会有所帮助。