Oracle Character Set
نشر بواسطة : Obay Salah , November 19, 2024
اختبار الCharacter Set:
يجب على مسؤول قاعدة البيانات اتخاذ قرارين مهمين عند إنشاء قاعدة البيانات:
القرار الأول هو اختيار حجم الBlock Database.
(DB_BLOCK_SIZE) والذي لا يمكن تغييره لأنه يستخدم في إنشاء ﺍلSystem Tablespace، وبالتالي لا يمكن تغيير حجم ﺍلDatabase Block إلا إذا تم إعادة إنشاء ﺍلData Dictionary
أو بعبارة أخرى، تم إعادة إنشاء قاعدة البيانات.
القرار الثاني هو اختيار ﺍلCharacter Set. قد يكون من الممكن لمسؤول قاعدة البيانات تغيير ﺍلCharacter Set، ولكن هذا ليس ممكنًا دائمًا أو عمليًا.
تخزنﺍلSet Character Database البيانات في أعمدة من النوع VARCHAR2 وCHAR وCLOB وLONG.
إذا قام مسؤول قاعدة البيانات بتغيير ﺍلSet Character ، فقد يؤدي ذلك إلى إتلاف البيانات الموجودة في أعمدة من هذا النوع، لذا يجب عليك اختيارﺍلSet Character
التي ستلبي احتياجاتك الحالية والمستقبلية عند إنشاء قاعدة البيانات.
إذا كانت لديك بيانات باللغة الفرنسية أو الإسبانية، فأنت بحاجة ﻟلWestern European Character Set، وإذا كانت باللغة الروسية أو التشيكية، فأنت بحاجة ﻟلEastern European Character Set، ولكن ماذا لو كانت لديك بيانات باللغتين الشرقية والغربية؟ بالإضافة إلى حقيقة أنك قد تحتاج إلى تخزين البيانات باللغات الكورية أو التايوانية،
توفر Oracle حلين لهذه المشكلة:
1- National Character Set: تم تقديمها في إصدار Oracle Database 8، وهي Character Set ثانية يتم تحديدها في لحظة إنشاء قاعدة البيانات وتستخدم لتخزين البيانات
في أعمدة من نوع NCLOB وNCHAR وNVARCHAR2، لذا إذا كان مسؤول قاعدة البيانات يتوقع أن تكون معظم بياناته باللغة الإنجليزية وبعضها باللغة اليابانية، فسوف يختار
Western European Character Set لDatabase Character Set وسيختار Kanji Character Set ك National Character Set.
2- Unicode: ولكن في إصدار Oracle 9i، تغير السيناريو قليلاً حيث أصبح من الضروري أن تكون ﺍلNational Character Set من نوع Unicode، وهي Character Set عالمية
يمكن أن تمثل جميع الأحرف التي يمكن استخدامها في أي جهاز كمبيوتر. هناك نوعان من Unicodes يمكنهما دعم الNationa Character Set:
Fixed-Width, Two-Byte Character Set :AL16UTF16 .
Variable-Width Character Set :UTF8
أفضل اختيار بين هذين الخيارين يدور حول الأداء وكفاءة التخزين.
يتم تحديد كل من ﺍلDatabase Character Set وﺍلNational Character Set في لحظة إنشاء قاعدة البيانات.
تغير الCharacter Set:
قد يحتاج مسؤول قاعدة البيانات أحيانًا إلى تغيير ﺍلCharacter Set لعدة أسباب، على سبيل المثال، لنفترض أن قاعدة البيانات تم إنشاؤها بالقيمة الافتراضية USVASCII،
لاحقًا اكتشف مسؤول قاعدة البيانات أنه يحتاج إلى تخزين أحرف لم تكن مدرجة في ﺍلCharacter Set هذه، على سبيل المثال اسم فرنسي،
قبل الإصدار 9i لم يكن من الممكن تغيير ﺍلCharacter Set، ولكن في الإصدار 9i والإصدارات الأحدث تدعم قاعدة البيانات الآن تغيير ﺍلCharacter Set، ولكن لا يوجد ضمان لنجاح هذه العملية. تقع على عاتق مسؤول قاعدة البيانات مسؤولية ضمان عدم إتلاف البيانات من عملية تحويل ﺍلCharacter Set. المشكلة ببساطة هي أن عملية تحويل ﺍلCharacter Set
قد لا تتمكن من تنسيق البيانات الحالية في ملف البيانات، على سبيل المثال إذا قام مسؤول قاعدة البيانات بتغيير ﺍلCharacter Set منWestern European إلى Eastern European
فعندئذٍ ستظهر العديد من البيانات المتداولة في أوروبا الغربية بنتائج كارثية.
توفر Oracle أداتين تساعدان في تحديد إمكانية تغيير ﺍلCharacter Set:
1- Database Character Set Scanner وهي أداة تعمل بشكل مستقل، حيث تتصل بقاعدة البيانات، وتصل إلى ملفات البيانات، وتصدر تقريرًا بالمشاكل المحتملة
(csscan.exe on Windows & Unix on csscan) .
csscan system/password full=y tochar=utf8
يتصل هذا الأمر بقاعدة البيانات عبر المستخدم SYSTEM ويفحص ملفات ﺍلData Files ويتحقق مما إذا كان التحويل إلى UTF8 قد يسبب أي مشاكل.
تكمن المشكلة في التحويل إلى UTF8 في أن الأحرف التي تم ترميزها في ﺍلCharacter Set الأصلية على أنها Byte One سوف تتطلب Byte Two في UTF8،
لذلك قد لا تتناسب البيانات مع العمود بعد التغيير.
سيقوم ﺍلDatabase Character Set Scanner بإنتاج تقرير شامل لكل صف تحدث فيه مشكلة في ﺍلSet Character الجديدة، ويجب عليك بعد ذلك اتخاذ الإجراءات المناسبة لتصحيح المشاكل قبل التحويل إذا أمكن.
2- The Language and Character Set File Scanner ستحاول هذه الأداة تحديد اللغة ﻭﺍلCharacter Set المستخدمة في ملف نصي،
تعمل على النص العادي فقط، هذه الأداة مفيدة جدًا إذا كان لديك بيانات تريد تحميلها إلى قاعدة البيانات ولا تعرف ما هي البيانات، تقوم الأداة
بفحص الملف وتخمين لغة وﻭﺍلCharacter Set. بعد التأكد من إمكانية تغيير ﻭﺍلCharacter Set دون أي ضرر، يمكنك تنفيذ الأمر.
Alter database character set utf8
يمكنك أيضًا تغيير ﺍلNational Character Set بنفس طريقة تغيير Alter database national character set، ولكن لا يوجد ضمان بعدم وجود مشاكل وهذه هي مهمة مسؤول قاعدة البيانات.
Comments
لايوجد تعليق حتى الان