Forum

Sql to Oracle sorgu...
 
Bildirimler
Hepsini Temizle

Sql to Oracle sorgu hatası

7 Yazılar
3 Üyeler
0 Reactions
1,555 Görüntüleme
(@ertanyildizdal)
Gönderiler: 285
Reputable Member
Konu başlatıcı
 

Merhaba

Win server 2008 r2 üzerinde kurulu Sql Server 2008 R2' den  Linked server tanımı ile Oracle 11.2 DB' e sorgu çekip insert update yapabiliyorum.

Sunucu değişikliğinden dolayı aynı kurguyu Win 2012 R2 üzerinde kurulu Sql 2016' da yapmayı deniyorum. Linked Server üzerinden hatasız bağlantı kurdum ve Oracle tarafındaki tablolara ulaşmaya başladım fakat bazı sorgularda (içinde özellikle metin olan tablolara yapılan)

 

"OLE DB provider 'OraOLEDB.Oracle' for linked server 'XXXXX' returned data that does not match expected data length for column '[ORAPROD]...[tablo_adı].kolon_adı'. The (maximum) expected data length is 480, while the returned data length is 468."    hatası alıyorum.

 

Sürüm farklarından kaynaklandığı düşünüp Sql 2008 R2 kurup tekrar denedim fakat aynı hatayı almaya devam ettim.

Server Collation dan şüphelenip Sql' i kaldırıp normal çalışan Sql ile aynı Server collation da tekrar kurdum.

 

Tanımlı olan değişken türleri ile ilgili bir hata olduğunu düşünüyorum ama mevcut Sql 2008R2 de normal çalışıp yeni kurduklarımda neden hata aldığımı çözebilmiş değilim.

 

Umarım sorunu anlatabilmişimdir yardımlarınız için şimdiden teşekkürler.

 
Gönderildi : 21/12/2017 17:29

(@vasviuysal)
Gönderiler: 7889
Üye
 

MsSql sunucuların regional settings ayarları farklı olabilir mi acaba ??

 
Gönderildi : 21/12/2017 17:51

(@ertanyildizdal)
Gönderiler: 285
Reputable Member
Konu başlatıcı
 

regional settings ler aynı.

 
Gönderildi : 21/12/2017 18:08

(@ertanyildizdal)
Gönderiler: 285
Reputable Member
Konu başlatıcı
 

Merhaba

Oracle daki tabloda Char tipindeki kolonlar hata veriyor. Char dışındaki değişkenlerde sorun çıkmıyor.

Bu değişken bilgisini nereden alıyor olabilir?

 

 

 
Gönderildi : 22/12/2017 21:47

(@bugraparlayan)
Gönderiler: 324
Üye
 

Hata veren yada benzeyen örnek bir kodu paylaşırmısınız. Ben yanlış hatırlamıyorsam mysql için böyle bir durumla karşılaşmıştım CAST ile çözmüştüm " select cast(employeeid as nvarchar)+firstname from employees  " gibi

Oracle ACE Associate - Türkiye Hayat & Emeklilik

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 23/12/2017 02:09

(@ertanyildizdal)
Gönderiler: 285
Reputable Member
Konu başlatıcı
 

char tipinde yanılmışım çünkü şunu fark ettim farklı bir tabloda char tipinde başka bir kolon var ve ona select çektiğimde hatasız cevap alıyorum.

cast örneklerini 2 gündür bende okudum ama şu anda denediğim sorgu çok basit bir * from dan ibaret, buradan gelecek cevabı sql içinde bir tabloya alıyoruz.

buradatuhaf olan aynı sorgunun farklı bir makinede sorunsuz çalışması.

 

select * from [linked_server_adı]...[Oracle_username.tablo_adi]

 
Gönderildi : 23/12/2017 03:50

(@ertanyildizdal)
Gönderiler: 285
Reputable Member
Konu başlatıcı
 

Merhaba

sorun değişken tiplerinden kaynaklanmıyor Windows tarafında kullandığım ORacle Client sürümünden kaynaklanıyormuş.

Oracle client için 12.0.1 kullanınca sorgular çalışmaya başladı.

Okuyan yorum yazan herkese teşekkür ederim.

 
Gönderildi : 25/12/2017 16:37

Paylaş: