使用Oracle的Refcursor中的问题 [英] Problem in Refcursor using Oracle
本文介绍了使用Oracle的Refcursor中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨
请任何人有解决方案,如果第一次引用的记录大于第二个refcur1的执行记录,我想执行oracle SP,否则如果有人知道,请不要帮助我
这是我的SP代码
Hi
please any body have solution i want to execute oracle SP if first refcur has record than and than second refcur1 execute otherwise not please help me if anybody knows
this is my SP code
(
v_COM_Service_No IN VARCHAR2,
v_COM_CompDate IN TIMESTAMP,
v_COM_Type IN CHAR,
v_COM_DefCD1 IN NUMBER,
v_COM_Modified_By IN VARCHAR2,
v_COM_IP_Addr IN VARCHAR2,
v_COM_Remarks in varchar2 default null
,v_refcur out sys_refcursor
,v_refcur1 out sys_refcursor
) as
v_OutComplaintNo varchar2(50);
v_maxSequenceNo number;
v_App_No VARCHAR2(25);
v_mtrchngcnt number;
v_mtrserialno VARCHAR2(25);
v_todflag varchar2(10);
BEGIN
open v_refcur for
select nvl(MTRM_CHANGE_COUNT,0)+1 ,MTRM_Serial_No,TOD_Name into v_mtrchngcnt , v_mtrserialno, v_todflag
from M_Meter,M_ServiceMaster,M_TOD where
TOD_Id = MTRM_TOD_Flag
and MTRM_Service_No = v_COM_Service_No
and SRM_Discon_tag_Id = 2
and SRM_Service_no = MTRM_Service_No and (MTRM_CHANGE_INDICATION=0 or MTRM_CHANGE_INDICATION is null) ;
if(v_mtrchngcnt > 1)then
open v_refcur1 for
select sws_com_compno.nextval into v_maxSequenceNo from dual;
end if;
END;
推荐答案
您必须首先检查诸如
之类的数据
you have first to check for the data like
SELECT COUNT(*) INTO XYZ FROM M_Meter,M_ServiceMaster,M_TOD where
TOD_Id = MTRM_TOD_Flag
and MTRM_Service_No = v_COM_Service_No
and SRM_Discon_tag_Id = 2
and SRM_Service_no = MTRM_Service_No and (MTRM_CHANGE_INDICATION=0 or MTRM_CHANGE_INDICATION is null);
IF XYZ > 0 THEN
return first cursor
ELSE
return second cursor
ENDIF;
这篇关于使用Oracle的Refcursor中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文