我有两张桌子catalog
和catalog_elements.
一个目录可以包含许多目录元素。
我有一个功能,我需要列出与一个目录关联的所有元素,并且同一页面的顶部我需要显示目录名称和目录评论(一个目录可以包含一个评论)。
我的 DBA 给出了一个存储过程,其中放置内部连接并选择如下记录,
C.cat_name, C.cat_comment, CE.cat_ele_id, CE.cat_ele_date
[C means catalog, CE means catalog Elements]
但是我喜欢用一秒SYS_REFCURSOR
来选择一个目录详情,避免每一行目录详情的重复元组
谁能建议最好的解决方案(在性能方面)?
下面的 sp 有两个光标,我想向 DBA 建议。
(我喜欢使用第二个游标从选择查询中删除 cat_name 和 cat_comment 以获取目录数据)
SP 代码模板如下:
create or replace
PROCEDURE SP_GET_Cat_CatEle_DTL(
P_CATALOG_ID NUMBER DEFAULT NULL,
P_RECORDSET OUT SYS_REFCURSOR,
P_CATALOG_RECORD OUT SYS_REFCURSOR
) AS
BEGIN
OPEN P_RECORDSET FOR
select cat_name, cat_comment, cat_ele_id, cat_ele_date from cat inner join
cat_ele on cat.id = cat_ele_id where cat.id = P_CATALOG_ID
OPEN P_CATALOG_RECORD FOR
SELECT * FROM CATALOG_MASTER WHERE CATALOG_ID = P_CATALOG_ID;
END SP_GET_Cat_CatEle_DTL;