Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

ejercicios pl/sql no compilan y no se el motivo

Estas en el tema de ejercicios pl/sql no compilan y no se el motivo en el foro de Oracle en Foros del Web. Hola a todos Aqui estoy haciendo unos cuantos ejercicios de pl/sql y tengo a estos tres cabroncetes que no compilan y no el motivo pues ...
  #1 (permalink)  
Antiguo 06/03/2011, 17:55
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 1
ejercicios pl/sql no compilan y no se el motivo

Hola a todos
Aqui estoy haciendo unos cuantos ejercicios de pl/sql y tengo a estos tres cabroncetes que no compilan y no el motivo pues el log del check compiler (uso SQL developer) tampoco me da pistas

Os dejo los enunciados y mi solucion a ver si alguien me puede echar un cable.
Yo creo que son errores sintacticos pero que no acierto a ver.

Un saludo y gracias por su tiempo

6º Codifique una función recursiva que recibe una frase y nos retorna la frase invertida
Funcion(‘buenos días’) retornará
saíd soneub.


create or replace function invertir (frase varchar2)
return varchar2
is
x integer:=length(frase);
begin
if x>0 then
return:=substr(frase,x,1)||invertir(substr(frase,1 ,(x-1)));
else
return:=return;
end if;
end;

set serveroutput on;
begin
dbms_output.put_line(invertir('roma'));
end;

15º Codifique una función recursiva que recibe un número entero positivo y nos retorne la suma de los números pares comprendidos entre 1 y el número pasado como argumento.



create or replace function eje15 (num integer)
return integer
is
aux integer;
begin
select mod(num,2) into aux from dual;
if aux=0 then
num=num;
else
num=num-1;
end if;
if num=2 then
return 2;
else
return num+eje15(num-2);
end if;
end;

set serveroutput on;
begin
dbms_output.put_line(eje15(8));
end;

17º Cree un procedimiento que mediante un cursor de actualización nos borre los departamentos que no tienen ningún empleado trabajando en proyectos.

create or replace procedure eje17
is
cursor c1 is select deptno from dept where deptno not in
(select distinct(deptno) from emp where empno in
(select distinct(empno) from trabaja)) for update;
reg c1%rowtype;
begin
open c1;
loop
fetch c1 into reg;
exit when c1%notfound;
update dept
--set deptno=reg.deptno+10 where deptno=reg.deptno;
--set delete from dept where deptno=reg.deptno;
delete from dept where deptno=reg.deptno;
end loop;
close c1;
end;

set serveroutput on;
execute eje17;

Etiquetas: ejercicios, motivo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.