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

Problemas con EXECUTE. ORA-00900

Estas en el tema de Problemas con EXECUTE. ORA-00900 en el foro de Oracle en Foros del Web. Saludos a todos los presentes. Soy nuevo en este foro y estoy utilizando Oracle Database Enterprise. Soy un estudiante y estoy viendo base de datos. ...
  #1 (permalink)  
Antiguo 27/11/2010, 22:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Pregunta Problemas con EXECUTE. ORA-00900

Saludos a todos los presentes. Soy nuevo en este foro y estoy utilizando Oracle Database Enterprise. Soy un estudiante y estoy viendo base de datos.

Estoy con un problema medio extraño a mi parecer. Eh creado un procedimiento llamado "modify_salary_by_number"

create or replace PROCEDURE hc.modify_salary_by_number
(p_emp_id IN NUMBER,
p_new_salary hc.employees.salary%TYPE)
IS
dyn_error VARCHAR2(255);
BEGIN
UPDATE hc.employees
SET salary = p_new_salary
WHERE employee_id = p_emp_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
dyn_error := 'Id no Found';
RAISE_APPLICATION_ERROR(-41251,dyn_error);
WHEN OTHERS THEN
dyn_error := 'Id Incorrect or Salary exceeds the maximun';
RAISE_APPLICATION_ERROR(-51251,dyn_error);
END modify_salary_by_number;
/

Cuando lo compilo, lo crea sin problemas. Pero cuando ejecuto la sentencia:
EXECUTE modify_salary_by_number(4, 1451)
Sale el error ORA-00900: Sentencia SQL Invalida. Porque?

Pero cuando lo ejecuto en archivos de comandos me sale: "Block anonymous completed"
Y cuando hago un SELECT * from EMPLOYEES; para ver los datos, me doy cuenta que si lo cambio.

Sin embargo, cuando hago un: EXECUTE modify_salary_by_number("" , 1451)
Lo ejecuto en archivos de comandos (Para probar los errores) me sale: "Block anonymous completed"

Y no entiendo porque, Si los parametros deben ser NUMBER.

No entiendo la verdad... Quisiera que me absuelvan mis dudas porfavor.
  #2 (permalink)  
Antiguo 28/11/2010, 08:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problemas con EXECUTE. ORA-00900

seguro es number?
revisa que tipo de dato es employee_id en la tabla employees.
o declaralo de la misma forma como declaras la otra variable.


Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE hc.modify_salary_by_number
  2. (p_emp_id ,  hc.employees.employee_id%TYPE,
  3. p_new_salary hc.employees.salary%TYPE)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 29/11/2010, 08:31
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Problemas con EXECUTE. ORA-00900

Creo que te has pasado de rango en el RAISE_APPLICATION_ERROR.
Cambia por ejemplo el -41251 por -20001 y el -51251 por el -20100 a ver que pasa.

Saludos

Etiquetas: execute
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 12:21.