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

Error PLS-00905 y error PLS-00304

Estas en el tema de Error PLS-00905 y error PLS-00304 en el foro de Oracle en Foros del Web. Hola, muy buenas, tengo un problema con oracle y no tengo mucha idea, ejecuto el código y no entiendo los errores, haber si ustedes me ...
  #1 (permalink)  
Antiguo 12/05/2013, 18:26
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 10 años, 11 meses
Puntos: 0
Exclamación Error PLS-00905 y error PLS-00304

Hola, muy buenas, tengo un problema con oracle y no tengo mucha idea, ejecuto el código y no entiendo los errores, haber si ustedes me pueden ayudar, Gracias.

Código:
Código SQL:
Ver original
  1. CREATE OR REPLACE PACKAGE paqueteboletin09
  2. IS
  3. FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
  4. RETURN NUMBER;
  5. PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10);
  6.  
  7. END paqueteboletin09;
  8. CREATE OR REPLACE PACKAGE BODY paqueteboletin09 IS
  9. FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
  10. RETURN NUMBER
  11. IS
  12. BEGIN
  13. RETURN p_a * p_b;
  14. END;
  15. END paqueteboletin09;


Errores de compilacion del cuerpo:

Error: PL/SQL: Compilation unit analysis terminated
Error (1,14): PLS-00905: el objeto JARDINERIA.PAQUETEBOLETIN09 no es válido
Error (1,14): PLS-00304: no se puede compilar el cuerpo de 'PAQUETEBOLETIN09' sin su especificación

Última edición por gnzsoloyo; 12/05/2013 a las 19:35 Razón: SQL sin etiquetar. Por favor usar Highlight "SQL"
  #2 (permalink)  
Antiguo 12/05/2013, 19:25
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Error PLS-00905 y error PLS-00304

Compila primero la declaración y comprueba los errores y después compila el cuerpo.

En cualquier caso la parte de Body le faltaría el procedimiento "tabla_multiplicar". para que te compile debería poner:
Código SQL:
Ver original
  1. CREATE OR REPLACE PACKAGE BODY paqueteboletin09 IS
  2. FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
  3. RETURN NUMBER
  4. IS
  5. BEGIN
  6.    RETURN p_a * p_b;
  7. END;
  8.  
  9. PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10) IS
  10. BEGIN
  11.    NULL;
  12. END;
  13. END paqueteboletin09;

Espero que se te solucione
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es

Última edición por gnzsoloyo; 12/05/2013 a las 19:35 Razón: SQL sin etiquetar. Por favor usar Highlight "SQL"
  #3 (permalink)  
Antiguo 13/05/2013, 03:53
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Error PLS-00905 y error PLS-00304

Cuando compilo la declaracion del paquete me compila bien y a continuacion compilo el cuerpo y tambien me muestra que esta bien compilado, pero cuando compilo entero me aparece un error y a continuacion compilo el cuerpo y me muestran los errores anteriores.

Cada vez que compilo un paquete debo compilar primero la declaracion y despues el cuerpo? o esque el codigo sige estando mal?. Este es el codigo completo, Muchas gracias zarwar.


Código:

CREATE OR REPLACE PACKAGE paqueteboletin09
IS
FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
RETURN NUMBER;
PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10);
END paqueteboletin09;

CREATE OR REPLACE PACKAGE BODY paqueteboletin09 IS
FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURN p_a * p_b;
END;
PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10) IS
BEGIN
NULL;
END;
END paqueteboletin09;
  #4 (permalink)  
Antiguo 13/05/2013, 09:25
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Error PLS-00905 y error PLS-00304

Me dá que lo que te falta es el pequeño detallito de la barrita de dividir, prueba esto.

Código SQL:
Ver original
  1. CREATE OR REPLACE PACKAGE paqueteboletin09
  2. IS
  3. FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
  4. RETURN NUMBER;
  5. PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10);
  6. END paqueteboletin09;
  7. /
  8.  
  9. CREATE OR REPLACE PACKAGE BODY paqueteboletin09 IS
  10. FUNCTION multiplica(p_a IN NUMBER, p_b IN NUMBER)
  11. RETURN NUMBER
  12. IS
  13. BEGIN
  14. RETURN p_a * p_b;
  15. END;
  16. PROCEDURE tabla_multiplicar (p_x IN NUMBER, p_y IN NUMBER DEFAULT 10) IS
  17. BEGIN
  18. NULL;
  19. END;
  20. END paqueteboletin09;
  21. /

Etiquetas: sql, tabla
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 18:53.