Temas > Programacion > Base de datos > Hacer cursores en Sql, base de datos
Julio

Para crear cursores en sql  debemos declarar una serie de variables, crear
nuestros cursores y abrirlos.
<?//esto no va
Declare// declaración de variables
  v_ename emp.ename%type;
  v_sal emp.sal%type;
  v_empno emp.empno%type;
  v_ename2 emp.ename%type;
  v_sal2 emp.sal%type;
  v_enames emp.ename%type;
  v_sals emp.sal%type;
cursor uno is//creación de cursores
select distinct e.ename, e.sal, e.empno from emp e ,emp o where
e.empno=o.mgr for update NOWAIT ;
cursor dos (p_empno emp.empno%type) is
select e.ename, e.sal from emp e ,emp o where e.mgr=p_empno ;
begin //estructura del programa
  open uno;
    loop
      fetch uno into v_ename,v_sal, v_empno;
      exit when uno%notfound;
        if v_sal < 1000 then 
          update emp set sal=(sal*10/100)+sal where current of uno;
        end if;
        if v_sal >= 1000 then
          update emp set sal=(sal*8/100)+sal where current of uno;
        end if; 
        if v_sal > 1200 then
          update emp set sal=(sal*5/100)+sal where current of uno;
        open dos (v_empno);
          loop
            fetch dos into v_enames,v_sals;
            exit when dos%notfound;
            update emp set sal=(sal*6/100)+sal where current of dos;
          end loop;
        close dos;
        end if;
      end loop;
    close uno;
end;
?>//esto no va
En este cursor lo que hacemos en la estructura del programa es poner en
funcionamiento dos loop(while) y depende de los resultados del primer
cursor pasa al segundo y con esto ahorraríamos mucho tiempo y trabajo.   













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal