الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سؤال في بعض function الsql

Featured Replies

بتاريخ:

الاخوة الاعزاء: بعد التحية الطيبة لكم.

ارغب في معرفة بعض الباراميتر في الfunction الاتية:

اولاً: INSTR والتي تكون بالشكل الاتي :
INSTR(x, find_string [, start] [, occurrence])
ارغب في معرفة ما هي start & occurrence وما الفائدة من استخدامها

ثانياً: LPAD والتي تكون بالشكل الاتي :
LPAD(x, width [, pad_string])
ارغب بمعرفة فائدة pad_string

مع الشرح ان امكن بالأمثلة ليتضح الامر اكثر


وانا بانتظاركم وشكراً.

بتاريخ:

الأخ الكريم

INSTR(x, find_string [, start] [, occurrence])
هذه الفانكشن هي عبارة عن ايجاد موقع حرف مثلا في كلمة معينة ويرجع لك قيمة رقمية فاذا وجد الرقم ارجع موقع الحرف واذا لم يجده يرجع الرقم صفر

SELECT INSTR('Admin05','A') from dual
INSTR('ADMIN05','A')
--------------------
                  1


طبعا في طرق في البحث يعني اذا اردت ان تبحث في كلمة Admin05 ولكن ان يبدأ من الحرف m
يعني يكون الموقع الثالث هو البداية نكتبها بالشكل التالي

  1* SELECT INSTR('Admin05','m','3') from dual

INSTR('ADMIN05','M','3')
------------------------
                      3


حيث تحدد بالبداية الحرف والموقع المراد البداية منه

LPAD
هي عملية قطع كلمة بنهاية الكلمة حيث تحدد له البداية والنهاية

  1* SELECT lpad('Admin05','3') from dual

LPA
---
Adm



ملاحظة يستفاد من instr في عملية ايجدا الحرف لنفرض انه جاءك سؤال يقول اقطع اسماء الموظفين اللذين يحتوي اسمهم على حرف a
لنفرض انه يوجد كم هائل من البيانات لذلك لن تعرف كل اسم ماهو ترتيب الحرف a
لذلك يكون القطع بالشكل التالي

Select  lpad(employee_name,instr(employee_name,'a')) from employees

بتاريخ:

PAD تأتي بمعنى ملء الفراغ أو الحشو... و L ترمز لجهة اليسار LEFT...
هذه الدالة تأخذ ثلاثة معاملات:
1. سلسلة حرفية (string)، مثلاً omar.
2. عدد يمثل العرض (عدد الخانات) التي تريد أن تظهر بها السلسلة الحرفية السابقة، مثلاً 10.
3. حرف أو أكثر (كسلسلة حرفية) يستخدم في حشو الفراغ على يسار omar إن كان هناك فراغ. والفراغ يأتي من الفرق بين العدد المحدد في المعامل الثاني (10)وبين الطول الفعلي للسلسلة الحرفية في المعامل الأول (omar) وهو هنا 10-4=6.
مثال:

;SQL> SELECT LPAD('OMAR', 10, '*') FROM DUAL
الناتج يعطي
OMAR******



بالمناسبة، RPAD تقوم بنفس العمل، ولكن الحشو يتم من اليمين... والله أعلم.

تم تعديل بواسطة Amgad

بتاريخ:

الاخ الكريم
هي منطقية عمل lpad كما تفضلت ولكن اذا اردت الاضافة مثلا بدون وضع كيفية الاضافة فتعمل الك قطع

بتاريخ:

الأخ الفاضل Admin05
كلامك صحيح، فإذا تم تحديد معامل العرض أقل من طول السلسلة فإن القطع يتم على حسب عدد خانات العرض...
وشكراً على مشاركاتك القيمة...

بتاريخ:
  • كاتب الموضوع

شكراً جزيلاً لكم الاخ أحمد والاخ admin05

لكن سؤالي ماذا تعني الباراميتر occurrence في الفانكشن instr

وشكراً

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.