Oracle SQL – PL53

Oracle SQL - PL53 gevolgd door werknemers

Cursors Met Parameters

We kunnen parameters overgaan in een cursor en gebruik ze in de query.

We kunnen alleen maar waarden om de cursor te passeren; en kan geen waarden flauwvalt van de cursor door middel van parameters.

Slechts het datatype van de parameter wordt gedefinieerd, niet de lengte.

Optioneel kunnen we ook geven een standaardwaarde voor de parameter, die van kracht wordt als er geen waarde aan de cursor wordt doorgegeven.

Cursors Met ParametersVoorbeeld

De volgende cursor prints afdeling nummer en de naam in één regel, gevolgd door werknemers in die afdeling (naam en salaris) en de totale salaris.

VERKLAREN
CURSOR cur_dept IS SELECT * FROM afd ORDER BY deptno;
CURSOR cur_emp (par_dept VARCHAR2) IS
SELECT Ename, salaris
FROM werkn
WAAR deptno = par_dept
ORDER BY Ename;


r_dept DEPT% ROWTYPE;
var_ename EMP.ENAME% TYPE;
var_salary EMP.SALARY% TYPE;
var_tot_salary NUMMER (10,2);

BEGINNEN
OPEN cur_dept;
LUS
FETCH cur_dept INTO r_dept;
EXIT WANNEER cur_dept% NOTFOUND;
DBMS_OUTPUT.PUT_LINE ( ​​’. Department’ || r_dept.deptno || ‘-‘ || r_dept.dname);
var_tot_salary: = 0;
OPEN cur_emp (r_dept.deptno);
LUS
FETCH cur_emp INTO var_ename, var_salary;
EXIT WANNEER cur_emp% NOTFOUND;
DBMS_OUTPUT.PUT_LINE ( ​​’Name:’ || var_ename || ‘Salaris:’ || var_salary);
var_tot_salary: = var_tot_salary + var_salary;
END LOOP;
CLOSE cur_emp;
DBMS_OUTPUT.PUT_LINE ( ​​’Total Salaris voor Dept:’ || var_tot_salary);
END LOOP;
CLOSE cur_dept;
EINDE;
/

Belangrijke punten om in gedachten te houden voor parameters cursors zijn:

  • De wijze van de parameters kan slechts worden.
  • Cursor wordt meer herbruikbare met Cursor parameters.
  • Standaardwaarden kunnen tot Cursor parameters worden toegewezen.
  • De reikwijdte van de cursor parameters is lokaal aan de cursor.

Bron: sql-plsql.blogspot.com

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

5 + veertien =