2010-10-26 24 views
5

Farklı dilde char verilerini aynı db şemasına depolamak için bir ihtiyacımız var. Oracle 10g bizim DB. Bunu daha önce yapmış olan birinin bana bir Oracle 10g db'yi nasıl kullanabileceğime dair daha spesifik talimatlar vereceğini umuyorum. Sadece db düzeyinde veriyi birden fazla yerel konumdan ve harmanlamadan (tüm büyük db'nin desteğini umuyoruz) saklamaya ihtiyacımız var. Tarihler, tarihler, sayılar, para birimi vb. Biçimlendirmeye ihtiyacımız yoktur.oracle ve i18n desteği

Oracle'ın i18n desteğiyle ilgili bazı belgeleri okudum, ancak birçok nls_ * özelliği hakkında biraz kafa karıştırıcı. Nls_lang veya nls_language veya NLS_CHARACTERSET .....

cevap

6

Kullanmalıyım Veritabanını sıfırdan oluşturmaya çalıştığınızı varsayarsak, başka sorunlara neden olan varolan bir veritabanını güçlendirmeye çalışmayın. Veritabanında, veritabanı karakter kümesinin saklamak istediğiniz tüm karakterleri desteklediğinden emin olmanız gerekir. Muhtemelen, bu veritabanının NLS_CHARACTERSET AL32UTF8 için ayarlanması anlamına gelir. Şahsen ben NLS_LENGTH_SEMANTICS'i CHAR'a da ayarlamayı tercih ediyorum. Bu, V bayt2 (n) nin varsayılan davranışını n bayttan ziyade n karakter depolarını ayırmak için değiştirir. AL32UTF8 değişken uzunluklu bir karakter kümesi olduğundan, bayt semantiği kullanılarak genellikle sorunludur, çünkü ya 3 kat daha uzun olan alanları bildirmeniz ve farklı kullanıcıların aynı alanda farklı sayıda karakter girebilmeleri gerekir.

NLS_LANG bir istemci ayarıdır. Bu, istemcinin verilere dönüştürülmesini istediği karakter kümesini tanımlar. Bu genellikle işletim sisteminin kod sayfasına bağlıdır. Net cevap için

+0

. AL32UF8 ise anlamı nedir. Bu UTF8'den farklı mı? –

+1

AL32UTF8, UTF8 sürümüdür. 3.1 – walla

+0

Teşekkürler. Daha fazla ayrıntıyı http://oracleappstechnology.blogspot.com/2007/10/difference-between-utf8-and-al32utf8.html –