Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> Software Database >> .

Come trovare un numero non valido in una tabella Oracle

Numeri non validi nelle tabelle Oracle possono essere frustrante e causare codice ben formato a comportarsi in modo inaspettato e indesiderato , conseguente ORA- 01722 errore di Oracle . L'errore di numero non valido in Oracle si pone, talvolta in modo apparentemente casuale , quando il codice SQL è scritto che utilizza una colonna di caratteri a base per le operazioni matematiche e si incontra un carattere non numerico . A peggiorare le cose , questo errore non si verifica sempre , anche se le condizioni per esso sono soddisfatti. Questo è principalmente dovuto al modo in una tabella viene attraversato quando viene sottoposto a scansione per la corrispondenza dei dati . Cose che ti serviranno
database Oracle
tavolo con un VARCHAR2 colonna : Dati di tipo sia numerico e non numerico nella colonna VARCHAR2
Show More Istruzioni
evitare l'errore di Prima succede
1

Creare una tabella con le colonne correttamente definite . Per esempio :

CREATE TABLE numbers_and_words

( number_col AS numero , Stati

word_col AS VARCHAR2 ( 100 ) ) economici 2

Programma l'applicazione di solo inserire i dati numerici nella colonna e carattere dati number_col nella colonna word_col .
3

Creare una condizione di controllo nell'applicazione che assicura i dati numerici non viene passato alla colonna number_col . Oracle consente la rappresentazione dei caratteri di un numero da memorizzare in una colonna di caratteri .
Aggirarlo
4

Scrivere una funzione per la cattura di dati non numerici . Un esempio :

CREATE FUNCTION is_numeric (str IN VARCHAR2 ) per

RITORNO NUMERO

IS

NUMERO num;

BEGIN < br

num > : = TO_NUMBER ( str) ;

return 1;

ECCEZIONE

poi quando gli altri

return 0;

END;
5

Scrivi una vista che utilizza la funzione di creare una rappresentazione della tabella senza dati non numerici . Supponendo che il nome della tabella è t1 e la colonna con i dati misti si chiama " mixed_col , " un solo numerico vista potrebbe essere scritto come segue :

CREATE VIEW numbersonly AS

Seleziona mixed_col DA t1

DOVE is_numeric ( mixed_col ) = 1
6

Utilizzare la vista numbersonly nelle query che devono fare operazioni numeriche basate sulla colonna. Per esempio :

SELECT * FROM numbersonly

DOVE mixed_col > 35

 

software © www.354353.com