Birisi için çok kolay bir şey, Aşağıdaki ek bana şu mesajı veriyor
ORA-01722: geçersiz numara
Neden?
INSERT INTO CUSTOMER VALUES (1,'MALADY','Claire','27 Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (2,'GIBSON','Jake','27 Smith St Caulfield','0415 713 598');
INSERT INTO CUSTOMER VALUES (3,'LUU','Barry','5 Jones St Malvern','0413 591 341');
INSERT INTO CUSTOMER VALUES (4,'JONES','Michael','7 Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (5,'MALADY','Betty','27 Smith St Knox','0418 418 347');
Bir karakter dizesi sayıya dönüştürülmeye çalışıldığında ve dize sayıya dönüştürülemediğinde ORA-01722 hatası oluşur.
Tablo tanımınızı görmeden, değerler listenizin sonundaki sayısal diziyi bir sayıya dönüştürmeye çalışıyormuşsunuz gibi görünüyor ve onu sınırlayan boşluklar bu hatayı veriyor. Ancak bize verdiğiniz bilgilere dayanarak, herhangi bir alanda (ilki dışında) gerçekleşiyor olabilir.
Bu hata, db'deki sayısal bir sütuna sayısal olmayan bir değer eklemeye çalıştığınızda geldiğinden, son alanınız sayısal olabilir ve bunu veritabanında bir dize olarak göndermeye çalışıyorsunuz gibi görünüyor. son değerinizi kontrol edin.
Bunun nedeni şudur:
Bir dizeyi bir dizeye dönüştürmeye çalışan bir SQL deyimi çalıştırdınız numarasını aradı, ancak başarısız oldu.
'da açıklandığı gibi:
Bu hatayı çözmek için:
Yalnızca sayısal alanlar veya sayısal değerler içeren karakter alanları aritmetik işlemlerde kullanılabilir. Tüm ifadelerin sayılara göre değerlendirin.