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

[SOLUCIONADO] Dividir Unicamente registros que contenga valor numerico

Estas en el tema de Dividir Unicamente registros que contenga valor numerico en el foro de Oracle en Foros del Web. Hola a migos tengo una tabla por ejemplo con los siguientes campos id varchar2(10), nombre varchar2(10) ---------+--------------+ id | nombre | ---------+--------------+ 1912 | Juan ...
  #1 (permalink)  
Antiguo 14/03/2013, 22:55
Avatar de YeisonSoto  
Fecha de Ingreso: enero-2011
Ubicación: Cali, Colombia, Colombia
Mensajes: 116
Antigüedad: 13 años, 2 meses
Puntos: 4
Pregunta Dividir Unicamente registros que contenga valor numerico

Hola a migos tengo una tabla por ejemplo con los siguientes campos

id varchar2(10),
nombre varchar2(10)


---------+--------------+
id | nombre |
---------+--------------+
1912 | Juan |
A176 | pedro |
2000 | Luis |

En el id la mayoria contiene solo valores numericos y algunos algunos cadena

Mi pregunta: Como Hago para consultar la tabla y dividir el id por 1000, solo los registros de id que contenga numeros, no letras ni combinaciones?



Que sitios me recomiendan para mirar las funcioines de oracle?


Agradezco la ayuda uqe me puedan dar..
  #2 (permalink)  
Antiguo 17/03/2013, 06:34
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Dividir Unicamente registros que contenga valor numerico

Create una función que encapsule la operación de división capturando la excepción VALUE_ERROR

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION F_DIVIDIR(A IN VARCHAR2, B IN VARCHAR2) IS
  2. DIVIDENDO NUMBER;
  3. DIVISOR NUMBER;
  4. BEGIN
  5.   DIVIDENDO := TO_NUMBER(A);
  6.   DIVISOR := TO_NUMBER(B);
  7.  
  8.   RETURN DIVIDENDO/DIVISOR;
  9.  
  10. EXCEPTION
  11. WHEN VALUE_ERROR THEN
  12. RETURN NULL;
  13. END;

Además tb convendría capturar la división por cero.

Un saludo
__________________
Anotaciones de un programador

Etiquetas: funciones, sql, sql-sentencia
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:50.