“Conocimiento software>Software de base de datos

Cómo encontrar un número no válido en una tabla Oracle

2013/4/8
Números válidos en tablas de Oracle puede ser frustrante y causar código bien formado para comportarse de forma inesperada y no deseada , lo que resulta en el ORA- 01722 error de Oracle . El error número inválido en Oracle surge , a veces de una manera aparentemente aleatoria , cuando el código SQL se escribe que utiliza una columna basada en caracteres para las operaciones matemáticas y se encuentra un carácter no numérico . Para empeorar las cosas , este error no siempre ocurren a pesar de que se cumplen las condiciones para ello . Esto es debido a la forma en que una tabla está atravesada cuando se está escaneando para hacer coincidir los datos principalmente . Cosas que necesitará
base de datos Oracle
tabla con una columna VARCHAR2
datos tanto de tipo numérico y no numéricos en la columna VARCHAR2
Mostrar más instrucciones Cómo evitar el error antes de it Happens
1

Crear una tabla con columnas correctamente definidos. Por ejemplo :

CREATE TABLE numbers_and_words

( number_col número AS ,

word_col COMO varchar2 ( 100 ) )
2 Programa

la aplicación sólo colocar los datos numéricos en los datos de la columna y el carácter number_col en la columna word_col .
3

Crear una condición de control en la aplicación que asegura los datos numéricos no se están pasando a la columna number_col . Oracle permite la representación de caracteres de un número que se almacena en una columna de caracteres .
Trabajar alrededor de ella
4

escribir una función para capturar los datos no numéricos . Un ejemplo :

CREAR is_numeric FUNCIÓN (str EN VARCHAR2 ) RETURN


NÚMERO


NÚMERO num;

COMENZAR

num: = TO_NUMBER (str ) ;

RETURN 1 ;


EXCEPCIÓN CUANDO OTROS ENTONCES

return 0;
< p> END;
5

Escribir una vista que utiliza la función para crear una representación de la mesa sin datos no numéricos . Suponiendo que el nombre de la tabla es t1 y la columna con los datos mixtos se llama " mixed_col , " una visión sólo numérico se puede escribir de la siguiente manera :

CREATE VIEW numbersonly AS

SELECCIONAR mixed_col DE t1

DONDE is_numeric ( mixed_col ) = 1
6

Utilice la vista numbersonly en las consultas que necesiten hacer operaciones numéricas basadas en la columna. Por ejemplo :

SELECT * FROM numbersonly

DONDE mixed_col > 35

Software de base de datos
Cómo desinstalar PowerDesk Pro 7
¿Qué son los atributos y entidades en la gestión de sistemas de bases de datos?
Diferencias entre un esquema de base de datos relacional y un esquema de base de datos
¿Una base de datos contiene archivos que contiene un archivo?
Cómo acceder a la ComboBox Formato de color rojo
Access 2007 : Subinformes Vista preliminar
Función de agregado en consultas Sub
Cómo utilizar un hipervínculo para pasar los datos a una página de acceso
Conocimiento de la computadora © http://www.ordenador.online