优化PLSQL游标Oracle Apex
我通过将HTML嵌入PLSQL来生成HTML报告。我已经通过两个游标和嵌套循环完成了这项工作,但我想对其进行优化。我的Oracle Apex报告正在生成此输出优化PLSQL游标Oracle Apex,oracle,plsql,oracle-apex,cursors,Oracle,Plsql,Oracle Apex,Cursors,我通过将HTML嵌入PLSQL来生成HTML报告。我已经通过两个游标和嵌套循环完成了这项工作,但我想对其进行优化。我的Oracle Apex报告正在生成此输出 ACCOUNTING - NEW YORK King - President Clark - Manager Miller - Clerk RESEARCH - DALLAS Jones - Manager Scott - Analyst Ford - Analyst Smith - Clerk Adams - Clerk SALES -
ACCOUNTING - NEW YORK
King - President
Clark - Manager
Miller - Clerk
RESEARCH - DALLAS
Jones - Manager
Scott - Analyst
Ford - Analyst
Smith - Clerk
Adams - Clerk
SALES - CHICAGO
Blake - Manager
Allen - Salesman
Ward - Salesman
Martin - Salesman
Turner - Salesman
James - Clerk
OPERATIONS - BOSTON
No Employee
我的代码是
declare
Cursor c_dept Is Select d.Deptno,d.Dname,d.Loc
From eba_demo_load_dept d;
Cursor c_Emp(v_Deptno Number) Is Select e.Empno,e.Ename,e.Job
From eba_demo_load_emp e
Where e.Deptno = v_Deptno;
begin
For i In c_Dept Loop
Htp.p('<ul>');
Htp.p('<h4>' || i.Dname ||' - '||i.loc||'</h4>');
--
For j In c_Emp(i.Deptno) Loop
Htp.p('<li>' || initcap(j.Ename) || ' - ' ||initcap(j.job)||'</li>');
End Loop;
Htp.p('</ul>');
End Loop;
Htp.p('<p>No Employee </p>');
end;
我想优化它。是否可以在一个循环中使用游标变量中的内部联接实现相同的输出。如果是,请帮忙 我认为嵌套游标循环——在本例中——完成了它应该做的事情。因为不同的HTML标签,我不认为其他解决方案会使它更好;也许更难阅读和理解。从现在的情况来看,你正在做什么以及你对结果的期望是非常清楚的
然而,你这样做有什么特别的原因吗?Apex提供交互式和经典的报告,只需点击几下即可轻松完成。我建议您使用其中一个,而不是您自己的代码。您可以通过组合以下查询来使用单个游标:
declare
Cursor c_dept Is
Select d.Deptno,d.Dname,d.Loc,,
Listagg('<li>' || initcap(j.Ename) || ' - ' ||initcap(j.job)||'</li>', chr(10))
Within group (order by 1) as emps
From eba_demo_load_dept d
Join eba_demo_load_emp e
On e.Deptno = d.Deptno
Group by d.Deptno,d.Dname,d.Loc;
begin
For i In c_Dept Loop
Htp.p('<ul>');
Htp.p('<h4>' || i.Dname ||' - '||i.loc||'</h4>');
--
Htp.p(i.emps);
Htp.p('</ul>');
End Loop;
Htp.p('<p>No Employee </p>');
end;
是的,你是对的,但我需要构建复杂的界面,比如配置文件细节或一些基于卡片的复杂报告。所以我们需要使用HTML/CSS。