مرتب سازی حروف فارسی در اوراكل
همانطور كه مي دانيد مرتب سازي حروف فارسي در ديتابيس اوراكل بصورت صحيح انجام نمي شود. حتی اگر NLS_SORT را با ARABIC در اوراکل تنظیم کنیم به علت وجود چهار کاراکتر (گچپژ) که در زبان فارسی اضافه تر از زبان عربی وجود دارد و همینطور جابجایی ترتیب دو کارکتر (و-ه)، مرتب سازی به زبان فارسی درست انجام نمی شود.
در این خصوص اسكريپتی را در زیر قرار می دهم که می توانید در هر جایی که خواسته باشید اطلاعات جدول خود در اوراکل را بصورت مرتب شده نمایش دهید.
شما فقط بايد نام جدول و فيلدي را كه مي خواهيد مرتب شود، جايگزين كنيد.
در ابتدا باید از طریق کوئری زیر در دیتابیس اوراکل نوع NLS_CHARACTERSET را مشاهده نمایید.
select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
result:
NLS_CHARACTERSET AR8MSWIN1256
result:
NLS_CHARACTERSET AR8MSWIN1256
نکته: در صورتیکه NLS_CHARACTERSET = AR8MSWIN1256 در اوراکل تنظیم شده باشد بصورت زیر عمل کنید:
SELECT
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(FAMILY))
,'پچحخدذرزژسشصضطظعغگو','ةحخدذرزسشصض×طظعغـàه')
SELECT
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(FAMILY))
,'پچحخدذرزژسشصضطظعغگو','ةحخدذرزسشصض×طظعغـàه')
نكته:
در صورتيكه براي كاركتر ‘ك’ از كد اسكي 223 استفاده شده باشد آن كلمه اي كه با اين كاركتر باشد درمرتب سازي در ابتدا آورده مي شود. براي تصحيح كردن آن مي توانيد بصورت زير عمل كنيد.
SELECT
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(replace(FAMILY,chr(152),chr(223))))
,'پچحخدذرزژسشصضطظعغگو','ةحخدذرزسشصض×طظعغـàه')
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(replace(FAMILY,chr(152),chr(223))))
,'پچحخدذرزژسشصضطظعغگو','ةحخدذرزسشصض×طظعغـàه')
نکته: در صورتیکه NLS_CHARACTERSET = UTF8 می باشد باید بصورت زیر عمل کنید.
select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
result:
NLS_CHARACTERSET UTF8
result:
NLS_CHARACTERSET UTF8
SELECT
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(replace(FAMILY,chr(55683), chr(55977)))),'بپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیي','بةتثجحخدذرزسشصضطظعغفقكلمنًٌٍَُِّ')
NAME
,FAMILY
FROM EMP
ORDER BY TRANSLATE(LTRIM(RTRIM(replace(FAMILY,chr(55683), chr(55977)))),'بپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیي','بةتثجحخدذرزسشصضطظعغفقكلمنًٌٍَُِّ')
امیدوار هستم که به دوستان کمک کرده باشم.
3.7/5 - (3 امتیاز)
جستجو
مطالب اخیر
نظرات اخیر
- مجتبی خالقداد در پلاگین کد امنیتی اوراکل اپکس(ای پکس)
- سعید حسن پور در تبدیل تاریخ ها در اوراکل
- حسین در تبدیل تاریخ ها در اوراکل
- مهرسا سعادت در نقشه راه اوراکل APEX برای نسخه بعدی
- سعید حسن پور در رفع مشکل Persian Date Picker برای اوراکل ایپکس(اپکس) ۲۱
برچسبها
AOP
APEX
apexrad
captcha
CDN
constraint
ebs
epg
forms
index
injection
longtype
Materialized-view
Oracle Application Express
orclapex
performance
Persian Sort
plsql
session
sql
standalone
variable scope
XE
امنیت
اوراکل
اپکس
ایندکس
ایپکس
بنبست
بهینه ساز
تاریخ شمسی
ترجمه
ترفند
حروف فارسی
داکیومنت
داینامیک
شمسی
مرتب سازی فارسی
نصب
نکته
پلاگین
یونیک