Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --cursor fetch into multi vars
- ---------------------------------------------------------------
- -- simple example with dual
- ---------------------------------------------------------------
- DECLARE
- firstName NUMBER(20);
- v_LastName NUMBER(20);
- vtre NUMBER(20);
- vquat NUMBER(20);
- CURSOR c_lecturer IS
- SELECT '1324', '22222', '33333', '44444' FROM dual;
- BEGIN
- DBMS_OUTPUT.put_line(CHR(13) || 'start');
- OPEN c_lecturer;
- LOOP
- FETCH c_lecturer INTO firstName, v_LastName, vtre, vquat;
- DBMS_OUTPUT.put_line(CHR(13) || 'firstName -> ' || firstName);
- DBMS_OUTPUT.put_line('v_LastName -> ' || v_LastName);
- DBMS_OUTPUT.put_line('vtre -> ' || vtre);
- DBMS_OUTPUT.put_line('vquat -> ' || vquat);
- EXIT WHEN c_lecturer%NOTFOUND;
- END LOOP;
- CLOSE c_lecturer;
- DBMS_OUTPUT.put_line(CHR(13) || 'end');
- END;
- ---------------------------------------------------------------
- ---------------------------------------------------------------
- ---------------------------------------------------------------
- --testing it
- ---------------------------------------------------------------
- DECLARE
- IDRISKINS NUMBER(18);
- IDVAR NUMBER(18);
- NVERINI NUMBER(18);
- NVERFI NUMBER(18);
- CURSOR c1 IS
- --query
- SELECT DISTINCT V.IDRISKINSURED, (SELECT idfattore FROM PPFATTORI WHERE ccodice = '6NCMD') AS IDFAT, V.NVERINIZIO, V.NVERFINE
- FROM PCPOLICY P JOIN PCPOLICYASS PA ON (PA.IDPOL = P.IDPOL) JOIN PCASSRISK AR ON (AR.IDASSINSURED = PA.IDASSINSURED)
- JOIN PCRISKINSURED RI ON (RI.IDRISKINSURED = AR.IDRISKINSURED ) JOIN PPRISCHI R ON (R.IDRISCHIO = RI.IDRISK)
- JOIN PCRISKVARIABLE V ON (V.IDRISKINSURED = RI.IDRISKINSURED) WHERE R.CCODICE = 'CDMRA'
- MINUS
- SELECT DISTINCT V.IDRISKINSURED,(SELECT idfattore FROM PPFATTORI WHERE ccodice = '6NCMD') AS IDFAT, V.NVERINIZIO, V.NVERFINE
- FROM PCPOLICY P JOIN PCPOLICYASS PA ON (PA.IDPOL = P.IDPOL) JOIN PCASSRISK AR ON (AR.IDASSINSURED = PA.IDASSINSURED) JOIN PCRISKINSURED RI ON (RI.IDRISKINSURED = AR.IDRISKINSURED)
- JOIN PPRISCHI R ON (R.IDRISCHIO = RI.IDRISK) JOIN PCRISKVARIABLE V ON (V.IDRISKINSURED = RI.IDRISKINSURED)
- JOIN PPFATTORI F ON (F.IDFATTORE = V.IDVARIABLE) WHERE R.CCODICE = 'CDMRA' AND F.CCODICE = '6NCMD';
- BEGIN
- DBMS_OUTPUT.put_line(CHR(13) || 'start');
- OPEN c1;
- LOOP
- FETCH c1 INTO IDRISKINS, IDVAR, NVERINI, NVERFI;
- --multi variables are allowed while fetch NOT outside!
- -- do your stuff
- EXECUTE IMMEDIATE 'INSERT INTO PCRISKVARIABLE (idriskinsured, idvariable, nverinizio, nverfine, CVALSTR, BOUTOFLIST, EORIGIN) values ('
- || IDRISKINS || ',' || IDVAR|| ','|| NVERINI|| ',' || NVERFI ||', ''-'', 0, 2 )';
- --dbms_output.put_line('INSERT INTO PCRISKVARIABLE (idriskinsured, idvariable, nverinizio, nverfine, CVALSTR, BOUTOFLIST, EORIGIN) values ('
- --|| IDRISKINS || ',' || IDVAR|| ','|| NVERINI|| ',' || NVERFI ||', ''-'', 0, 2 )');
- EXIT WHEN c1%NOTFOUND;
- END LOOP;
- CLOSE c1;
- EXCEPTION
- WHEN OTHERS THEN
- -- log on exception
- DBMS_OUTPUT.put_line('ERROR!');
- DBMS_OUTPUT.put_line(CHR(13) ||
- 'Insert in error -> INSERT INTO PCRISKVARIABLE (idriskinsured, idvariable, nverinizio, nverfine, CVALSTR, BOUTOFLIST, EORIGIN) values ('
- || IDRISKINS || ',' || IDVAR|| ','|| NVERINI|| ',' || NVERFI ||', ''-'', 0, 2 )' );
- DBMS_OUTPUT.put_line(CHR(13) || 'end');
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement