>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
-- INITIAL 02/13/2004 Jay
--
CREATE PROCEDURE SampleSP
(IN I_ITEM_ID CHAR(9),
IN I_STATUS CHAR(01),
IN I_STATUS_REASON_CD CHAR(02),
OUT SP_STATUS INTEGER)
FENCED
RESULT SET 1
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
NO DBINFO
COLLID RSSPONLN
NO WLM ENVIRONMENT
ASUTIME NO LIMIT
STAY RESIDENT YES
PROGRAM TYPE MAIN
SECURITY DB2
COMMIT ON RETURN NO
P1: BEGIN
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SEL_CSR CURSOR WITH RETURN FOR
--
SELECT RE.ITEM_ID
,RE.EDITION_ID
,RE.CUR_VERSION
,R.FREQUENCY
,RE.STATUS
,RE.STATUS_REASON_CODE
,RE.STATUS_REASON_COMM
,RE.EDITION_EXP_DATE
,FF.FILE_FORMAT
FROM RST_REPORT_EDITION RE,
RST_ITEM_FORMAT FF,
RST_REPORT R
WHERE RE.ITEM_ID LIKE I_ITEM_ID
AND RE.ITEM_ID = FF.ITEM_ID
AND RE.ITEM_ID = R.ITEM_ID
AND RE.EDITION_ID = FF.EDITION_ID
AND RE.STATUS LIKE I_STATUS
AND RE.STATUS_REASON_CODE LIKE I_STATUS_REASON_CD
;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SET SP_STATUS = SQLCODE;
--
OPEN SEL_CSR;
--
SET SP_STATUS = SQLCODE;
END P1
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>
Hi experts,
was trying to understand above stored proc.what it does is takes three arguments
IN I_ITEM_ID CHAR(9),
IN I_STATUS CHAR(01),
IN I_STATUS_REASON_CD CHAR(02),
//and returns back the following
RE.ITEM_ID
,RE.EDITION_ID
,RE.CUR_VERSION
,R.FREQUENCY
,RE.STATUS
,RE.STATUS_REASON_CODE
,RE.STATUS_REASON_COMM
,RE.EDITION_EXP_DATE
,FF.FILE_FORMAT
//FROM these tables
RST_REPORT_EDITION RE,
RST_ITEM_FORMAT FF,
RST_REPORT R
//if these conditions are true
WHERE RE.ITEM_ID LIKE I_ITEM_ID
AND RE.ITEM_ID = FF.ITEM_ID
AND RE.ITEM_ID = R.ITEM_ID
AND RE.EDITION_ID = FF.EDITION_ID
AND RE.STATUS LIKE I_STATUS
AND RE.STATUS_REASON_CODE LIKE I_STATUS_REASON_CD
;
Now , I am not sure what the other parts of the code mean like this peice at the top
++++++++++++++++++++++++
OUT SP_STATUS INTEGER)
FENCED
RESULT SET 1
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
NO DBINFO
COLLID RSSPONLN
NO WLM ENVIRONMENT
ASUTIME NO LIMIT
STAY RESIDENT YES
PROGRAM TYPE MAIN
SECURITY DB2
COMMIT ON RETURN NO
P1: BEGIN
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SEL_CSR CURSOR WITH RETURN FOR
++++++++++++++++++++++
and this peice at the bottom
+++++++++++++++++++++++
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SET SP_STATUS = SQLCODE;
--
OPEN SEL_CSR;
--
SET SP_STATUS = SQLCODE;
+++++++++++++++++++++++
any help appreciated
thanks
J