citychap26
Programmer
Hi Guys,
I'm actually a Sybase boy but doing a little Oracle at the moment. I'm trying to update table 2 based on the results of my cursor:
CREATE OR REPLACE PROCEDURE Step4a
IS
v_SYS_FAC_ID FACILITIES%ROWTYPE;
CURSOR lcur_name IS
SELECT *
FROM FACILITIES x
WHERE x.src_sys_code = 'RMP'
AND x.sys_facility_id IN
( SELECT /*+ all_rows materialize */
REPLACE( f.acbs_facility_reference, '/', '_' )
FROM FAC_LEVEL_MATCH f
INTERSECT
SELECT x.sys_facility_id
FROM FACILITIES x
WHERE x.src_sys_code = 'RMP');
BEGIN
OPEN lcur_name;
LOOP
FETCH lcur_name INTO v_SYS_FAC_ID;
EXIT WHEN lcur_name%NOTFOUND;
---DBMS_OUTPUT.PUT_LINE(v_SYS_FAC_ID.SYS_FACILITY_ID || v_SYS_FAC_ID.FACILITY_ID || v_SYS_FAC_ID.PROD_PD_ID);
DBMS_OUTPUT.PUT_LINE(lcur_name%ROWCOUNT);
UPDATE FAC_LEVEL_MATCH ff
SET ff.LEVEL1_SYS_FACILITY_ID = v_SYS_FAC_ID.SYS_FACILITY_ID
,ff.LEVEL1_FACILITY_ID = v_SYS_FAC_ID.FACILITY_ID
,ff.LEVEL1_PROD_PD_ID = v_SYS_FAC_ID.PROD_PD_ID
,ff.LEVEL1_AGREED_LIMIT = v_SYS_FAC_ID.AGREED_LIMIT_AMT
WHERE REPLACE(ff.acbs_facility_reference, '/', '_' ) = v_SYS_FAC_ID.SYS_FACILITY_ID
AND LEVEL1_SYS_FACILITY_ID IS NULL;
DBMS_OUTPUT.PUT_LINE('Updated');
END LOOP;
COMMIT;
END Step4a;
/
Can you guys tell me why this is not updating FAC_LEVEL_MATCH
Cheers
SK
I'm actually a Sybase boy but doing a little Oracle at the moment. I'm trying to update table 2 based on the results of my cursor:
CREATE OR REPLACE PROCEDURE Step4a
IS
v_SYS_FAC_ID FACILITIES%ROWTYPE;
CURSOR lcur_name IS
SELECT *
FROM FACILITIES x
WHERE x.src_sys_code = 'RMP'
AND x.sys_facility_id IN
( SELECT /*+ all_rows materialize */
REPLACE( f.acbs_facility_reference, '/', '_' )
FROM FAC_LEVEL_MATCH f
INTERSECT
SELECT x.sys_facility_id
FROM FACILITIES x
WHERE x.src_sys_code = 'RMP');
BEGIN
OPEN lcur_name;
LOOP
FETCH lcur_name INTO v_SYS_FAC_ID;
EXIT WHEN lcur_name%NOTFOUND;
---DBMS_OUTPUT.PUT_LINE(v_SYS_FAC_ID.SYS_FACILITY_ID || v_SYS_FAC_ID.FACILITY_ID || v_SYS_FAC_ID.PROD_PD_ID);
DBMS_OUTPUT.PUT_LINE(lcur_name%ROWCOUNT);
UPDATE FAC_LEVEL_MATCH ff
SET ff.LEVEL1_SYS_FACILITY_ID = v_SYS_FAC_ID.SYS_FACILITY_ID
,ff.LEVEL1_FACILITY_ID = v_SYS_FAC_ID.FACILITY_ID
,ff.LEVEL1_PROD_PD_ID = v_SYS_FAC_ID.PROD_PD_ID
,ff.LEVEL1_AGREED_LIMIT = v_SYS_FAC_ID.AGREED_LIMIT_AMT
WHERE REPLACE(ff.acbs_facility_reference, '/', '_' ) = v_SYS_FAC_ID.SYS_FACILITY_ID
AND LEVEL1_SYS_FACILITY_ID IS NULL;
DBMS_OUTPUT.PUT_LINE('Updated');
END LOOP;
COMMIT;
END Step4a;
/
Can you guys tell me why this is not updating FAC_LEVEL_MATCH
Cheers
SK