PROCEDURE xx_read_sql_p (
p_N_run_id IN NUMBER DEFAULT NULL
,p_N_rpt_id IN NUMBER DEFAULT NULL
,p_N_cntrl_id IN NUMBER DEFAULT NULL
,p_C_sql_stmt IN VARCHAR2
,p_tbl_err_dtl OUT NOCOPY xx_pkg.tbl_err_dtl
,p_C_err_msg OUT NOCOPY VARCHAR2
,p_N_err_code OUT NOCOPY NUMBER
)
IS
l_refcur SYS_REFCURSOR;
l_query_string VARCHAR2(4000);
l_rec xx_pkg.xx_com_attribute_rec;
l_cnt NUMBER := 0;
l_string VARCHAR2(1000);
l_err_msg VARCHAR2 (600);
l_err_code NUMBER;
l_attribute1 VARCHAR2(240);
l_attribute2 VARCHAR2(240);
l_attribute3 VARCHAR2(240);
l_attribute4 VARCHAR2(240);
l_attribute5 VARCHAR2(240);
x_api_error EXCEPTION;
BEGIN
/* Fetch the latest run values */
BEGIN
SELECT attribute1
,attribute2
,attribute3
,attribute4
,attribute5
INTO l_attribute1
,l_attribute2
,l_attribute3
,l_attribute4
,l_attribute5
FROM apps.xx_com_err_details
WHERE run_id = p_N_run_id
AND report_id = p_N_rpt_id AND
ROWNUM = 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_attribute1 := NULL;
l_attribute2 := NULL;
l_attribute3 := NULL;
l_attribute4 := NULL;
l_attribute5 := NULL;
WHEN OTHERS THEN
p_C_err_msg := 'Error : Fecth the latest run attribute values.Reason : '||SUBSTR(SQLERRM,1,150);
RAISE x_api_error;
END;
/* Assign the input sql string to l_query_string */
l_query_string := p_C_sql_stmt;
/* Open cursor and read the input sql string */
OPEN l_refcur FOR l_query_string USING l_attribute1,l_attribute2,l_attribute3,l_attribute4,l_attribute5;
LOOP
FETCH l_refcur INTO l_rec;
EXIT WHEN l_refcur%NOTFOUND;
l_cnt := l_cnt+1;
p_tbl_err_dtl(l_cnt).report_id := p_N_rpt_id;
p_tbl_err_dtl(l_cnt).run_id := p_N_run_id;
p_tbl_err_dtl(l_cnt).cntrl_id := p_N_cntrl_id;
p_tbl_err_dtl(l_cnt).attribute1 := l_rec.attribute1;
p_tbl_err_dtl(l_cnt).attribute2 := l_rec.attribute2;
p_tbl_err_dtl(l_cnt).attribute3 := l_rec.attribute3;
p_tbl_err_dtl(l_cnt).attribute4 := l_rec.attribute4;
p_tbl_err_dtl(l_cnt).attribute5 := l_rec.attribute5;
p_tbl_err_dtl(l_cnt).attribute6 := l_rec.attribute6;
p_tbl_err_dtl(l_cnt).attribute7 := l_rec.attribute7;
p_tbl_err_dtl(l_cnt).attribute8 := l_rec.attribute8;
p_tbl_err_dtl(l_cnt).attribute9 := l_rec.attribute9;
p_tbl_err_dtl(l_cnt).attribute10 := l_rec.attribute10;
p_tbl_err_dtl(l_cnt).attribute11 := l_rec.attribute11;
p_tbl_err_dtl(l_cnt).attribute12 := l_rec.attribute12;
p_tbl_err_dtl(l_cnt).attribute13 := l_rec.attribute13;
p_tbl_err_dtl(l_cnt).attribute14 := l_rec.attribute14;
p_tbl_err_dtl(l_cnt).attribute15 := l_rec.attribute15;
END LOOP;
CLOSE l_refcur;
/* Retun the success error code and message */
p_C_err_msg := 'Success';
p_N_err_code := 0;
EXCEPTION
WHEN x_api_error
THEN
p_N_err_code := 2;
ROLLBACK;
WHEN OTHERS
THEN
p_C_err_msg := 'Error main others xx_read_sql_p.Reason : '|| SUBSTR (SQLERRM, 1, 150);
p_N_err_code := 2;
apps.xx_pkg.xx_print_log_p (p_C_err_msg);
ROLLBACK;
END xx_read_sql_p;
No comments:
Post a Comment