Ogiltiga nummer i Oracle tabeller kan vara frustrerande och orsaka välformad kod för att bete sig på oväntade och oönskade sätt , vilket resulterar i Oracle ORA - 01722 misstag . Den felaktigt antal fel i Oracle uppstår , ibland i ett till synes slumpmässigt sätt , när SQL -koden är skriven som använder ett tecken - baserade kolumnen för matematiska operationer och ett icke - numeriskt tecken påträffas . För att göra saken värre , kommer detta fel inte alltid uppstå även om förutsättningarna för det är uppfyllda . Detta beror främst på hur en tabell korsas när den skannas för att matcha data. Saker du behöver
Oracle Tabell databas hotell med en VARCHAR2 Datakolumn
av både numeriska och icke - numeriska typen i VARCHAR2 kolumnen
Visa fler instruktioner
Undvik felet innan det händer
1
Skapa en tabell med korrekt definierade kolumner . Till exempel :
CREATE TABLE numbers_and_words
( number_col AS nummer ,
word_col AS varchar2 ( 100 ) )
2
Program ansökan till bara placera numeriska data i number_col kolumn och karaktär data i word_col kolumnen .
3
Skapa en check tillstånd i programmet som ger numeriska data inte överförs till number_col kolumnen . Oracle kommer att ge karaktären av ett tal som ska lagras i en karaktär kolumn .
Jobba runt det
4
Skriv en funktion för att fånga icke - numeriska data . Ett exempel :
skapar fungerar is_numeric ( str VARCHAR2 ) katalog
returnummer
Is