elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 03:40  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos
| | | |-+  GESTIONAR EXCEPCIONES EN ORACLE
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: GESTIONAR EXCEPCIONES EN ORACLE  (Leído 669 veces)
inquilin@19

Desconectado Desconectado

Mensajes: 66



Ver Perfil
GESTIONAR EXCEPCIONES EN ORACLE
« en: 1 Febrero 2012, 18:56 »

Hola a todos, vereis estoy haciendo unos ejercicios de Oracle sobre el tratamiento de excepciones, el código que tengo es el siguiente:
Código:
SQL> DECLARE
  2  numero EMPLE.EMP_NO%TYPE;
     apellido EMPLE.APELLIDO%TYPE;
     puesto EMPLE.OFICIO%TYPE;
     jefe EMPLE.DIR%TYPE;
     fecha EMPLE.FECHA_ALT%TYPE;
     salario EMPLE.SALARIO%TYPE;
     comision EMPLE.COMISION%TYPE;
     dep EMPLE.DEPT_NO%TYPE;
duplicado_no_emp EXCEPTION;
  5  BEGIN
  6  SELECT MAX(EMP_NO) INTO num_emple FROM EMPLE;
  7  SELECT SYSDATE INTO fecha FROM DUAL;
     apellido := 'VAZQUEZ';
     puesto := 'VENDEDOR';
     jefe := '7698';
     salario := '1200';
     comision := '200';
  8  dep := 20;
  9  num_emple := num_emple +1;     
 10  INSERT INTO EMPLE
     VALUES (numero, apellido, puesto,jefe,fecha,salario,comision,dep);
IF numero IN SELECT EMP_NO FROM EMPLE;
RAISE duplicado_no_emp;
END IF;
IF jefe = NULL
RAISE no_dir;
END IF;
EXCEPTION
 WHEN duplicado_no_em THEN
dbms_output.put_line('Número de empleado no puede estar duplicado');
WHEN no_dir THEN
dbms_output.put_line('¡Todo empleado tiene que tener jefe!');
END;
  /
No sé en que me falla pero no se ejecuta correctamente.
Otra duda que tengo, se supone que tengo que sacar de una tabla los dos empleados que mas cobran por oficio, he conseguido esto:
Código:
SQL> SELECT MIN(SALARIO), DEPT_NO FROM EMPLE GROUP BY DEPT_NO;
Pero no consigo sacar los dos que más cobran
Alguien me podría ayudar?
En cuanto resuelva el resto les subo por si a alguien le sirven
Un saludo y gracias de antemano
:D


En línea

Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
fran800m

Desconectado Desconectado

Mensajes: 139



Ver Perfil
Re: GESTIONAR EXCEPCIONES EN ORACLE
« Respuesta #1 en: 6 Febrero 2012, 19:23 »

Hace mucho que no toco PL, ¿pero no_dir no debería estar declarado?
y en el declare

 DECLARE
 numero EMPLE.EMP_NO%TYPE;
     apellido EMPLE.APELLIDO%TYPE;
     puesto EMPLE.OFICIO%TYPE;

¿no deberias separar con , en vez de ; ?

Si necesitas el máximo, ¿por qué usas min() ?

¿Qué mensaje de error et da?


En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Oracle presenta Oracle Database 11g
Noticias
Isirius 0 296 Último mensaje 16 Julio 2007, 12:14
por Isirius
Excepciones en av nod32
Hacking Básico
50l3r 0 1,333 Último mensaje 26 Marzo 2009, 22:12
por 50l3r
excepciones c++
Programación C/C++
^kazike^ 8 2,244 Último mensaje 8 Septiembre 2009, 13:54
por Eternal Idol
¿Excepciones en CSS?
Desarrollo Web
Urpem 7 2,835 Último mensaje 15 Diciembre 2009, 02:04
por Nakp
[ORACLE-JAVA] java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Java
abrtx 2 2,056 Último mensaje 21 Junio 2011, 15:35
por abrtx
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines