seleccionar * de stuinfo; --Cursor implícito Comienzo dbms_output.put_line('Before-query:'|| sql%rowcount); Actualizar conjunto Stuinfo Stusex = 'femenino'; dbms_output.put_line('Después de la consulta:'|| sql%rowcount); fin;
--cursor explícito --1. Común declarar cursor mycur1 es select * desde stuinfo; --definen los cursores --v_id stuinfo.stuid%type; --v_name stuinfo.stuname%type; --v_sex stuinfo.stusex%type; --v_bir stuinfo.stubir%type; v_row stuinfo%rowtype; Comienzo abre MyCur1; --Cursor abierto Bucle --obtener mycur1 en v_id,v_name,v_sex,v_bir; --Mueve el cursor hacia abajo para poner el valor de lectura en la variable Obtén mycur1 en v_row; --Leer cursor salir cuando mycur1%notfound; --dbms_output.put_line('id:'|| v_id||', nombre: '|| v_name||', género: '|| v_sex||' Cumpleaños: '|| v_bir); --Resultado de salida dbms_output.put_line('id:'|| v_row.stuid||', nombre: '|| v_row.stuname||', género: '|| v_row.stusex||' Cumpleaños: '|| v_row.stubir); bucle final; cerrar mycur1; --Apaga el cursor fin;
--2. Versificador con parámetros declarar cursor mycur1(v_sex stuinfo.stusex%type) se selecciona * de stuinfo donde stusex = v_sex; --definen los cursores v_row stuinfo%rowtype; Comienzo abre mycur1('&género'); --Cursor abierto Bucle Obtén mycur1 en v_row; --Leer cursor salir cuando mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', nombre: '|| v_row.stuname||', género: '|| v_row.stusex||' Cumpleaños: '|| v_row.stubir); bucle final; cerrar mycur1; --Apaga el cursor fin;
--3. Cursor circular declarar cursor mycur1 es select * desde stuinfo; --definen los cursores Comienzo para v_row en mycur1 Bucle dbms_output.put_line('id:'|| v_row.stuid||', nombre: '|| v_row.stuname||', género: '|| v_row.stusex||' Cumpleaños: '|| v_row.stubir); bucle final; fin;
--4. Actualizar los datos con el cursor declarar cursor mycur1 es select * de stuinfo para actualización; --definen los cursores Comienzo para v_row en mycur1 Bucle si v_row.stuid = '003' entonces eliminar de stuinfo donde está vigente mycur1; si no, Actualizar el conjunto StuInfo Stusex = 'Masculino' donde está actual MyCur1; fin si; bucle final; fin;
seleccionar * de stuinfo; Actualizar el conjunto Stuinfo Stusex = 'Female' donde Stuid = '002';
--cursor de referencia --1. Tipo débil declarar el tipo curname es cursor de ref; --definir un tipo de cursor (curname es el nombre del tipo) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; Comienzo v_sex := '& género'; si v_sex = 'masculino' entonces Abre MyCur1 para seleccionar * de Stuinfo donde Stusex = 'masculino'; Bucle Obtén mycur1 en v_row; --Leer cursor salir cuando mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', nombre: '|| v_row.stuname||', género: '|| v_row.stusex||' Cumpleaños: '|| v_row.stubir); bucle final; si no, Abre MyCur1 para seleccionar * desde subinfo; Bucle Obtén mycur1 en v_row2; --Leer cursor salir cuando mycur1%notfound; bucle final; fin si; cerrar mycur1; --Apaga el cursor fin; selecciona * desde subinfo;
--Tipo fuerte declarar Tipo curname es cursor ref return stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; Comienzo v_sex := '& género'; si v_sex = 'masculino' entonces Abre MyCur1 para seleccionar * de Stuinfo donde Stusex = 'masculino'; si no, Abre MyCur1 para seleccionar * de StuInfo donde Stusex = 'Femenino'; fin si;
Bucle Obtén mycur1 en v_row; --Leer cursor salir cuando mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', nombre: '|| v_row.stuname||', género: '|| v_row.stusex||' Cumpleaños: '|| v_row.stubir); bucle final; cerrar mycur1; --Apaga el cursor fin;
|