Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   Eliminar registros no numericos (http://www.forosdelweb.com/f100/eliminar-registros-no-numericos-544961/)

FaiTCRaH 02/01/2008 16:41

Eliminar registros no numericos
 
Hola

El problema que tengo es el siguiente.. tengo una tabla con un campo alfanumérico, y dicho campo necesito compararlo con otro campo que es totalmente numérico. Esto sería bastante fácil con un to_number o un to_char. El problema es que hay registros alphanumericos en la tabla origen... o sea, algo así como '44324A12'. Lo que necesito es eliminar o bien, identificar este tipo de registros y eliminarlos o bien realizarles un tratamiento distinto.

Desde ya, muchas gracias


Ah... otra cosa, es posible q dentro de esos mismos caracteres vengan otros, como el ~, $, # u otros

matanga 02/01/2008 17:52

Re: Eliminar registros no numericos
 
Hola,

Este problema ha sido motivo de varios post en varios foros, y todos han llegado mas o menos a la misma conclusion, hay que wrapear la funcion TO_NUMBER dentro de una funcion desarrollada por nosotros, el problema es siempre el mismo, la funcion TO_NUMBER no maneja excepciones.

Código:

CREATE OR REPLACE FUNCTION my_to_number( arg IN VARCHAR2 )
  RETURN INTEGER
IS
  var NUMBER;
  not_a_number EXCEPTION;
  PRAGMA EXCEPTION_INIT( not_a_number, -6502 );
BEGIN
  var := to_number( arg );
  RETURN var;
EXCEPTION
  WHEN not_a_number THEN
    RETURN null;
END;

De esta manera podremos hacer consultas como la siguiente en forma segura.

Código:

SELECT *
  FROM testtable
 WHERE code = 'H'
  AND my_to_numeric( value ) > 1000

Fuente: http://www.ddbcinc.com/askDDBC/topic.asp?TOPIC_ID=722

Saludos

kikolice 03/01/2008 16:21

Re: Eliminar registros no numericos
 
o tambien identificas si es numerico o no, aqui hablo como hacerlo

http://www.blogzote.com/2007/01/15/i...ric-en-oracle/


La zona horaria es GMT -6. Ahora son las 06:44.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.