3 Ağustos 2007 Cuma

Birleşmeli Dizilerde Küreselleşme Ayarları

VARCHAR2 anahtar değerli (key values) birleşmeli diziler (associative arrays) kullanan bir oturumda (session), ulusal dil (national language) ayarları veya küreselleşme ayarları (globalization settings) değişirse, program bir çalışma hatası (runtime error) ile karşılaşabilir.

Örneğin bir oturumda, NLS_COMP veya NLS_SORT gibi başlatma parametrelerinin (initialization parameters) değiştirilmesi NEXT ve PRIOR gibi yöntemlerin (methods) istisna (exception) vermesine neden olabilir, bu yüzden yeni işlem yapılmadan önce bu ayarlar orjinal değerlerine çevrilmelidir.

Anahtar (key) olarak bir stringi kullanan bir birleşmeli dizinin (associative array) bildirimi yapılırken, bildirimde VARCHAR2, STRING veya LONG tipi kullanılmalıdır. TO_CHAR fonksiyonu ile VARCHAR2 'ye çevrilebildiği sürece farklı bir tip de kullanılabilir, örneğin NCHAR, NVARCHAR2 veya DATE gibi.

Bununla beraber anahtar olarak kullanılan değerler tutarlı ve eşsiz olduğunda diğer tiplerin kullanımında dikkatli olunmalıdır. Örneğin NLS_DATE_FORMAT başlatma parametresi (initialization parameter) değişirse, SYSDATE 'in string değeri değişebilir; bu durumda da array_element(SYSDATE) eskiden verdiği sonucu vermez. Benzer şekilde iki farklı NVARCHAR2 değeri aynı VARCHAR2 değerine dönüşebilir (bazı ulusal karakterlerin yerine soru işareti gelerek).

Bir veritabanı bağlantısı (database link) kullanılarak, bir birleşmeli dizi (associative array) parametre olarak uzaktaki bir veritabanına gönderilirse, bu iki veritabanının farklı küreselleşme ayarları (gobalization settings) olabilir.

Uzaktaki veritabanı FIRST ve NEXT gibi işlemler yaptığında kendi karakter düzenini (character order) kullanır, bu topluluğun (collection) ilk olarak oluşturulduğu düzenden farklı olabilir. Bu karakter seti farklılıkları, uzaktaki veritabanında, eşsiz (unique) olan iki anahtarın bu eşsizlik özelliğini ortadan kaldırırsa, program VALUE_ERROR istisnası (exception) verebilir.

Hiç yorum yok: