Veri türü tek veya çift olan alanları Oracle'a aktardığınızda Access hataya neden oluyor
Özgün KB numarası: 301915
Not
Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir. Bu makale bir Microsoft Access veritabanı (.mdb) ve bir Microsoft Access projesi (.adp) için geçerlidir.
Belirtiler
Tek veya Çift veri türünde alanları olan bir Access tablosunu dışarı aktarmak için Oracle ODBC sürücüsünü kullandığınızda, sürücü bu alanları aşağıdaki gibi dışarı aktaramıyor.
Microsoft Oracle sürücüsü aşağıdaki hata iletisini görüntüler:
Microsoft Access tüm verileri tabloya ekleyemedi. Sayı> kayıtlarındaki <alanların içeriği silindi ve anahtar ihlalleri nedeniyle 0 kayıt kayboldu.
- Veriler silindiyse, yapıştırdığınız veya içeri aktardığınız veriler, hedef tablodaki alan veri türleri veya FieldSize özelliğiyle eşleşmez.
- Kayıtlar kaybolduysa, yapıştırdığınız kayıtlar hedef tabloda zaten var olan birincil anahtar değerlerini içerir veya tablolar arasında tanımlanan bir ilişkinin bilgi tutarlılığı kurallarını ihlal eder. Yine de devam etmek istiyor musunuz?
Sürüm 8.1.6'ya kadar ve sürüm 8.1.6 dahil oracle ODBC sürücüleri aşağıdaki hata iletisini görüntüler:
ODBC - çağrı başarısız oldu [Oracle][ODBC][ORA] ORA-01401: Sütun için çok büyük değer eklendi (#1401)
Neden
Microsoft Access 97'de, dışarı aktarma işlemi Tek ve Çift veri türü alanlarını VarChar2(40) olarak dönüştürür. Ancak, Microsoft Access 2000 ve sonraki sürümlerde alanlar VarChar2(4) olarak dönüştürülür ve bu da verileri barındıramayacak kadar küçük olur.
Çözüm
Verileri Oracle'a başarıyla aktarmak için ilgili tabloları temel alan bir sorgu kullanın. Veri türünü Dizeye dönüştürmek için CStr()işlevini kullanın.
Örneğin, aşağıdaki SQL söz dizimini göz önünde bulundurun:
SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;
burada dblTest, veri türü Double olan bir alandır. SQL söz diziminde aşağıdaki değişikliği yaparak dblTest'i Dize veri türüne dönüştürün:
SELECT tblExample.pkeyDataID, CStr([dblTest]) AS Expr1
FROM tblExample;
Sorgu artık Oracle'a başarıyla aktarılabilir.
Bu sorun Microsoft Jet 4.0 Veritabanı Altyapısı Hizmet Paketi 8'de (SP8) giderilmiştir.
Durum
Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bunun bir sorun olduğunu onayladı.
Ek Bilgi
Bu makalede bahsedilen üçüncü taraf ürünler, Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin