الدرس السادس: بعض ال function المهمة والتي نحتاجها
بسم الله الرحمن الرحيم
الدرس السادس
سوف نكمل في هذا الدرس بعض ال function المهمة والتي نحتاجها
* TO_DATE
تقوم هذه الفانكشن بتحويل الSTRING الى تاريخ فلو اخذنا هذه على اساس انها STRING فيمكن ان نحولها الى DATE
الدرس السادس
سوف نكمل في هذا الدرس بعض ال function المهمة والتي نحتاجها
* TO_DATE
تقوم هذه الفانكشن بتحويل الSTRING الى تاريخ فلو اخذنا هذه على اساس انها STRING فيمكن ان نحولها الى DATE
كود:
to_date( string1, [ format_mask ], [
nls_************************************************ ] )
حيث ان STRING1 هو عبارة عن التاريخ المراد تحويله
FROMAT_MASK هو عبارة عن صيغة المراد التحويل التاريخ اليها وقد استعرضت في ما سبق استخدامات او تحويلات التاريخ الى STRING راجع الدرس الرابع
NLS_Lang وهو صيغة التاريخ وهي اختيارية حيث تستطيع وضع صيغة التاريخ الهجري مثلا
مثال
FROMAT_MASK هو عبارة عن صيغة المراد التحويل التاريخ اليها وقد استعرضت في ما سبق استخدامات او تحويلات التاريخ الى STRING راجع الدرس الرابع
NLS_Lang وهو صيغة التاريخ وهي اختيارية حيث تستطيع وضع صيغة التاريخ الهجري مثلا
مثال
كود:
to_date('2003/07/09', 'yyyy/mm/dd') would return a date value of
July 9, 2003.
to_date('070903', 'MMDDYY') would return a date value of July 9,
2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar
15, 2002.
* LAST_DAYوهو
ارجاع تاريخ ىخر شهر فقط عليك ادخال اي تاريخ وهو يرجع لك ىخر يوم في هذا الشهر
القاعدة
القاعدة
كود:
last_day( date )
مثال
last_day(to_date('2003/03/15', 'yyyy/mm/dd')) would return Mar 31, 2003
last_day(to_date('2003/02/03', 'yyyy/mm/dd')) would return Feb 28, 2003
last_day(to_date('2004/02/03', 'yyyy/mm/dd')) would return Feb 29, 2004
* ADD_MONTHS
وهو اضافة شهر على التاريخ المعطى
القاعدة
last_day(to_date('2003/03/15', 'yyyy/mm/dd')) would return Mar 31, 2003
last_day(to_date('2003/02/03', 'yyyy/mm/dd')) would return Feb 28, 2003
last_day(to_date('2004/02/03', 'yyyy/mm/dd')) would return Feb 29, 2004
* ADD_MONTHS
وهو اضافة شهر على التاريخ المعطى
القاعدة
كود:
add_months( date1, n )
حيث n هو عدد المراد اضافتها
وممكن انقاص الاشهر او زيادتها
مثال
وممكن انقاص الاشهر او زيادتها
مثال
كود:
add_months('01-Aug-03', 3) would return '01-Nov-03'
add_months('01-Aug-03', -3) would return '01-May-03'
add_months('21-Aug-03', -3) would return '21-May-03'
add_months('31-Jan-03', 1) would return '28-Feb-03'
*NEXT_DAY
وهو اضافة يوم او عدد من الايام على التاريخ المعطى
وهو اضافة يوم او عدد من الايام على التاريخ المعطى
كود:
next_date(date1,n)
حيث ال n هو
عدد الايام المراد اضافتها او تستطيع وضع اسم اليوم في هذا الاسبوع فيحضر لك
تاريخه
كود:
NEXT_DAY('01-01-2006',5) RETURN '06-01-2006'
NEXT_DAY('15-01-2006',-5) RETURN '10-01-2006'
كود:
next_day('01-Aug-03', 'TUESDAY')
* TRIM
تستخدم لحذف الاحرف في الكلمة سواء من جهة اليمين او اليسار او من الوسط
تستخدم لحذف الاحرف في الكلمة سواء من جهة اليمين او اليسار او من الوسط
كود:
trim( [ leading | trailing | both [ trim_character ] ]
string1 )
حيث ان leading تستخدم لحذف الحروف من
اول الكلمة
trailing تستخدم لحذف الحروف من آخر الكلمة
both تستخدم لحذف الحروف من اي جهة موجود في الكلمة (يمين/يسار/وسط)
واذا لم يتم استخدام هذه المتغيرات مع trim فان الحذف يكون للفراغات فيط
مثال
trailing تستخدم لحذف الحروف من آخر الكلمة
both تستخدم لحذف الحروف من اي جهة موجود في الكلمة (يمين/يسار/وسط)
واذا لم يتم استخدام هذه المتغيرات مع trim فان الحذف يكون للفراغات فيط
مثال
كود:
trim(' tech ') سوف نرجع القيمة بدون فراغات'tech'
trim(' ' from '
tech ') سوف ترجع الكلمة بدون فراغات ولاحظا اننا استخدمنا from 'tech'
trim(leading '0' from '000123') سوف يتم
حذف الاصفار من بداية الجملة'123'
trim(trailing '1' from 'Tech1') سوف يتم
حذف الاواحد من الآخر'Tech'
trim(both '1' from '123Tech111') سوف
يتم حذف الرقم واحد من اليمين والشمال'23Tech'
* Ltrimتستخدم
للحذف من جهة اليسار ومميزاتها انها تحذف الاحرف المراد حذفها سواء كانت مرتبه او
لا
كود:
ltrim( string1, [ trim_string ] )
مجموعة امثلة
كود:
ltrim(' tech'); would return
'tech'
ltrim(' tech', ' ');
would return 'tech'
ltrim('000123', '0'); would return '123'
ltrim('123123Tech', '123'); would return 'Tech'
ltrim('123123Tech123', '123'); would return 'Tech123'
ltrim('xyxzyyyTech', 'xyz'); would return 'Tech'
ltrim('6372Tech', '0123456789'); would return 'Tech'
وهنا لاحظوا كيف تحذف ال y رغم
تكرارها
كود:
ltrim('xyxzyyyTech', 'xyz'); would return 'Tech'
كود:
ltrim( '6372Tech', '0123456789'); would return 'Tech'
*Rtrim
نفس مبدأ عمل trim ولكنها عكس Ltrim حيث تحذف من جهة اليمين
نفس مبدأ عمل trim ولكنها عكس Ltrim حيث تحذف من جهة اليمين
كود:
rtrim( string1, [ trim_string ] )
الأمثلة
كود:
rtrim('tech '); would
return 'tech'
rtrim('tech ', ' ');
would return 'tech'
rtrim('123000', '0'); would return '123'
rtrim('Tech123123', '123'); would return 'Tech'
rtrim('123Tech123', '123'); would return '123Tech'
rtrim('Techxyxzyyy', 'xyz'); would return 'Tech'
rtrim('Tech6372', '0123456789'); would return 'Tech'
كود:
rtrim('Techxyxzyyy', 'xyz'); would return 'Tech'
rtrim('Tech6372', '0123456789'); would return 'Tech'
*LPAD
وتستخدم لزيادة عدد من الفراغات او تكرار الكلمة من جهة اليسار طبعا سوف يبدأ من جهة اليسار ليزيد
وتستخدم لزيادة عدد من الفراغات او تكرار الكلمة من جهة اليسار طبعا سوف يبدأ من جهة اليسار ليزيد
كود:
lpad( string1, padded_length, [ pad_string ] )
حيث padded_length هو العدد المراد زيادته
طبعا ينقص منه طول الكلمة
لو فرضنا اعطانا الكلمة RRR
واراد ان يزيد عليها + واعطى العدد 10 طبعا طول الكلمة هي 3 يعني سوف يزيد 7 نجم فيصبح الشكل الكلمة كما يلي RRR+++++++
أمثلة
لو فرضنا اعطانا الكلمة RRR
واراد ان يزيد عليها + واعطى العدد 10 طبعا طول الكلمة هي 3 يعني سوف يزيد 7 نجم فيصبح الشكل الكلمة كما يلي RRR+++++++
أمثلة
كود:
lpad('tech', 7); would return '
tech'
lpad('tech', 2); would return 'te'
lpad('tech', 8, '0'); would return '0000tech'
lpad('tech on the net', 15, 'z'); would return 'tech on the net'
lpad('tech on the net', 16, 'z'); would return 'ztech on the
net'
*RPAD
وتستخدم لزيادة عدد من الفراغات او تكرار الكلمة من جهة اليمين طبعا سوف يبدأ من جهة اليمين ليزيد
وتستخدم لزيادة عدد من الفراغات او تكرار الكلمة من جهة اليمين طبعا سوف يبدأ من جهة اليمين ليزيد
كود:
rpad( string1, padded_length, [ pad_string ] )
امثلة
كود:
rpad('tech', 7); would return 'tech '
rpad('tech', 2); would return 'te'
rpad('tech', 8, '0'); would return 'tech0000'
rpad('tech on the net', 15, 'z'); would return 'tech on the net'
rpad('tech on the net', 16, 'z'); would return 'tech on the
netz'
*SUBSTR
يستخدم لقطع جملة معينة او كلمة معينة ويجب ان تحدد بداية القطع وعدد الاحرف او طول المراد قطعه
كود:
substr( string, start_position, [ length ] )
مع ملاحظة اذا كان
بداية القطع صفر فإن ال
SUBSTR تغير القيمة الى واحد
واذا كان الرقم بداية القطع هو موجب فانه يبدأ من بداية الكلمة يعني اليسار
واذا كان الرقم بداية القطع هو سالب فانه يبدأ من نهاية الكلمة يعني اليمين
امثلة
واذا كان الرقم بداية القطع هو موجب فانه يبدأ من بداية الكلمة يعني اليسار
واذا كان الرقم بداية القطع هو سالب فانه يبدأ من نهاية الكلمة يعني اليمين
امثلة
كود:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', 1, 4) would return 'Tech'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'
substr('TechOnTheNet', -8, 2) would return 'On'
* INSTRيستخدم
لارجاع موقع الحرف في الكلمة وكذلك يستخدم للبحث عن حرف في كلمة فاذا وجده يرجع
موقعه والا يرجع القيمة صفر ويمكن ان يستغل في معالجة بعض البيانات
كود:
instr( string1, string2, [ start_position ], [ nth_appearance ]
)
الامثلة
كود:
instr('Tech on the net', 'e') would return 2; the first
occurrence of 'e'
instr('Tech on the net', 'e', 1, 1) would return 2; the first occurrence
of 'e'
instr('Tech on the net', 'e', 1, 2) would return 11; the second
occurrence of 'e'
instr('Tech on the net', 'e', 1, 3) would return 14; the third
occurrence of 'e'
instr('Tech on the net', 'e', -3, 2) would return 2.
* LENGTH
يستخدم لارجاع طول الكلمة او الجملة
كود:
length( string1 )
مثال
كود:
length(NULL) would return NULL.
length('') would return NULL.
length('Tech on the Net') would return 15.
length('Tech on the Net ') would return 16.
*TRANSLATE
يستخدم لاستبدال احرف معينه انت تحددها بأخرى
حيث يبدل كل حرف مقابله حرف
يعني لو حددنا الاحرف RTY من الكلمة RTYYRT ونريد ابدالها ب QW3 لاحظ انه بدل ال Y سوف يبدلها ب 3 وبدل T سوف يبدلها ب W وبدل ال R سوف يبدلها ب Q
لتصبح الكلمة QW33QW
القاعدة
يستخدم لاستبدال احرف معينه انت تحددها بأخرى
حيث يبدل كل حرف مقابله حرف
يعني لو حددنا الاحرف RTY من الكلمة RTYYRT ونريد ابدالها ب QW3 لاحظ انه بدل ال Y سوف يبدلها ب 3 وبدل T سوف يبدلها ب W وبدل ال R سوف يبدلها ب Q
لتصبح الكلمة QW33QW
القاعدة
كود:
translate( string1, string_to_replace, replacement_string
)
حيث string_to_replace هو الاحرف المراد ابدالها بالكلمة
replacement_string الاحرف الجديدة المراد ابدالها بالاحرف القديمة
امثلة
حيث string_to_replace هو الاحرف المراد ابدالها بالكلمة
replacement_string الاحرف الجديدة المراد ابدالها بالاحرف القديمة
امثلة
كود:
translate('1tech23', '123', '456); would return '4tech56'
translate('222tech, '2ec', '3it'); would return '333tith'
* REPLACE
وتستخدم لحذف او استبدال الكلمات
replace( string1, string_to_replace, [ replacement_string ] )
حيث تبين هنا ان الكلمة المراد استبدالها وهي تشبه ال TRANSLATE تقريبا والفرق هو ان ال TRANSLATE تبدل الاحرف فقط اما الREPLACE تعمل على الحذف والابدال اذا لم نحدد لها الاحرف المراد الابدال بها فيما لو استخدمت فقط بالشكل التالي
وتستخدم لحذف او استبدال الكلمات
replace( string1, string_to_replace, [ replacement_string ] )
حيث تبين هنا ان الكلمة المراد استبدالها وهي تشبه ال TRANSLATE تقريبا والفرق هو ان ال TRANSLATE تبدل الاحرف فقط اما الREPLACE تعمل على الحذف والابدال اذا لم نحدد لها الاحرف المراد الابدال بها فيما لو استخدمت فقط بالشكل التالي
كود:
replace('123123tech', '123'); would return 'tech'
replace('123tech123', '123'); would return 'tech'
اما اذا استخدمت بالشكل
التالي فانها تشبه عمل
TRANSLATE
كود:
replace('222tech, '2', '3'); would return '333tech'
replace('0000123', '0'); would return '123'
replace('0000123', '0', ' '); would return ' 123'
*CONCAT
يستخدم لدمج كلمتين او اكثر ببعضهما
يستخدم لدمج كلمتين او اكثر ببعضهما
كود:
concat( string1, string2 )
ويمكن استبدالها بالرمز ||
كود:
concat('Tech on', ' the Net'); would return 'Tech on the Net'.
concat('a', 'b') would return 'ab'.
'Tech on'|| ' the Net'
would return 'Tech on the Net'.
'a'|| 'b' would return 'ab'.
الأسئلة
لدينا الجدول التالي يحتوي على اسم الموظف ورقم الموظف
والبيانات بالشكل التالي
كود:
emp_no
emp_name
birth_date
----------
-----------------------------
----------------
10 ali
ahmed ali 20-01-1970
20
Admin05 05 05 20-02-1976
30
ahmed moheme
20-01-1960
40
50dfgdr 50 20-10-1950
1-اعرض اسماء الموظفين وتاريخ ميلادهم بزيادة 5 شهور
2-اعرض اسماء الموظفين وتاريخ ميلادهم على ان يكون تاريخ الميلاد زيادة 5 ايام
3-احذف اول 3 احرف من كل اسم
4-استخدم ال concat لدمج اسم الموظف ورقمه
5-استبدل ال الحرف a ب e من كل اسم
6-بين موقع الحرف m من كل اسم
7-بين طول كل اسم من كل حرف
8-استبدل اخر 3 احرف من كل اسم بحرف v واعرضها
9-اضف 9 نجم من جهة اليمين لكل اسم مرة وكن جهة اليسار مرة اخرى
10-ابدأ القطع لكل اسم من الموقع الثالث
2-اعرض اسماء الموظفين وتاريخ ميلادهم على ان يكون تاريخ الميلاد زيادة 5 ايام
3-احذف اول 3 احرف من كل اسم
4-استخدم ال concat لدمج اسم الموظف ورقمه
5-استبدل ال الحرف a ب e من كل اسم
6-بين موقع الحرف m من كل اسم
7-بين طول كل اسم من كل حرف
8-استبدل اخر 3 احرف من كل اسم بحرف v واعرضها
9-اضف 9 نجم من جهة اليمين لكل اسم مرة وكن جهة اليسار مرة اخرى
10-ابدأ القطع لكل اسم من الموقع الثالث
كود:
انتهى الدرس
ليست هناك تعليقات:
إرسال تعليق