الانتقال إلى المحتوى

Sys_Context


amirsheta

Recommended Posts

كل ما بعمل الكود ده ما بشتغلش

Select * from products where language = SYS_CONTEXT('USERENV','LANGUAGE')


مع ان لو عملت الكود كده بتشتغل

Select * from products


مع ان بيانات Products متخرنة مرة باللغة الانجليزية ومرة باللغة الفرنسية وبلغات اخرى

وقيمة Language فى الجدول بتكون أما EN -FR -JP - ....

بعد اذن حضراتكم بتعمل ايه
SYS_CONTEXT('USERENV','LANGUAGE')

وازاى اتحكم فى اللغة فى قاعدة البيانات بحيث تطلع بيانات من جدول Products حسب اللغة

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
-----------
اخى الكريم
ناتج الاستعلام

Select Sys_Context('Userenv','Language') From Dual;


يكون بهذا الشكل

ARABIC_SAUDI ARABIA.AR8ISO8859P6



طالما ان الجدول مخزن به البيانات بالشكل AR, EN فممكن تستخدم الدالة Substr
وبالتالى يصبح شكل الاستعلام كالاتى

Select * From Products Where Substr(Language ,1,2) =Substr( Sys_Context('Userenv','Language'),1,2);

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

أخي الحبيب

الموضوع بسيط

في جدول products لو كانت اللغات مطابقة لنمط أوراكل في استخدام اللغات مثل AR EN فاليكم التالي

أولا
حضرتك طلبت SYS_CONTEXT('USERENV','LANGUAGE' بتعمل ايه فهي بتشوف ايه اللغة التي تم اعداد الاوراكل للعمل بها أو ما يسمي ب NLS_LANG

يبقي علشان نعرف ايه اللغة المستخدمة أحد الطرق هو

Select Sys_Context('Userenv','Language') From Dual;



لاحظ النتيجة

مثلا
ARABIC_SAUDI ARABIA.AR8ISO8859P6
أو
ARABIC_SAUDI ARABIA.AR8MSWIN1256

أو
AMERICAN_AMERICA.WE8ISO8859P6

فلو مصممي قاعدة البيانات أختاروا اللغة علي هيئة ما بعد النقطة .

اللي هي في مثالنا AR,EN

يمكنك عمل التالي زي ما قال أخي الفاضل قبلي ولكن مع تعديل بسيط

Select * From Products Where Substr(Language ,1,2) =Select * From Products Where Substr(Language ,1,2) =substr(Sys_Context('Userenv','Language'),instr(Sys_Context('Userenv','Language'),'.')+1,2) ;



أما لا

SELECT DISTINCT Language FROM PRODUCT;

ستظهر لك اللغات

وطابق النتاتج مع

select substr(Sys_Context('Userenv','Language'),instr(Sys_Context('Userenv','Language'),'.')+1,2)  from dual
/




تحياتي

رابط هذا التعليق
شارك

SQL> SELECT SYS_CONTEXT('USERENV','Lang') FROM DUAL;

SYS_CONTEXT('USERENV','LANG')
--------------------------------------------------------------------------------
US




SELECT SYS_CONTEXT('USERENV','Language') FROM DUAL;

SYS_CONTEXT('USERENV','LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AR8MSWIN1256




SQL> SELECT * FROM  products  WHERE LANGUAGE = SYS_CONTEXT('USERENV', 'LANG');

no rows selected



ازاى اقدر اغير اللغة علشان اعرف اشغل جملة SELECT ؟؟؟؟ ويظهر المنتج بحسب اللغة
قيمة Language فى الجدول بتكون واحدة من دول EN - FR - DE - JA

رابط هذا التعليق
شارك

  • بعد 6 سنة...

كيف اعرض اللغة الحالية للكيبورد  بكود محدد  مثلا ..  اريد اعرف  هل مفاتيح الكيبورد  تكتب عربي ام انكليزي ...  هل في كود معين في الاوركل يعرض لي ذلك

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية