Oracle - ORA-06502: PL/SQL: numeric or value error: character to number conversion error

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 5 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

ORA-06502: PL/SQL: numeric or value error: character to number conversion error

Publicado por vicente (1 intervención) el 08/11/2017 14:43:35
hola a todos, estoy empezando a programar en PL/SQL y ya empece con problemas u.u, no encuentro manera de pasar decimales al procedimiento, espero me puedan ayudar

1
2
3
4
5
6
7
8
9
10
11
12
13
drop table libros;
create table libros(
precio number(4,2)
);
 
create or replace procedure pa_libros_insertar
(aprecio IN number)
as
begin
insert into libros values (aprecio);
end;
 
EXECUTE pa_libros_insertar(1.4);

error:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 1
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause: An arithmetic, numeric, string, conversion, or constraint error
occurred. For example, this error occurs if an attempt is made to
assign the value NULL to a variable declared NOT NULL, or if an
attempt is made to assign an integer larger than 99 to a variable
declared NUMBER(2).
*Action: Change the data, how it is manipulated, or how it is declared so
that values do not violate constraints.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

ORA-06502: PL/SQL: numeric or value error: character to number conversion error

Publicado por Elvis (102 intervenciones) el 08/11/2017 20:02:53
Antes que nada recuerda que si haces una declaracion number(4,2) indica que que del tamaño de 4 restale los dos decimales osea que te queda un numero a insertar 99.99 nada mas, ahora bien tienes que ver el separador de decimales de tu base oracle por lo que te recomiendo que en lugar de llamar al procedure EXECUTE pa_libros_insertar(1.4); pruebes llamando asi EXECUTE pa_libros_insertar(1,4); osea en lugar de colocar punto (.) coloques coma (,).

Espero que esta sea la solución de tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar