الانتقال إلى المحتوى
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.

سؤال في داله

Featured Replies

بتاريخ:

السلام عليكم لو سمحتم انا لاقيت السؤال ده في مصدرين واحد كاتب ان اول اجابه هى الصح والتانى كاتب ان التانيه هى الصح
الجواب الثانى انا جربته ولاقيت انى لو بضع اى من parameter او االاتنين بnull بيطلع نتيجه

عايزه بس اعرف هل الاجابه الاولى في اي مانع انها تكون صح

create or replace function  g_mail(f1 varchar2,f2 varchar2)
return varchar2
is
v_mail varchar2(50);
begin v_mail:=substr(f1,1,1)||substr(f2,1,1)||'@oracle';
return v_mail;
end;



this function can be used aganist any table
this function can be used only if the two parameters passed in are not null values

بتاريخ:

السلام عليكم ورحمة الله
أختي الكريمة لو تناقشنا كده في الاختيار الاول
هل هذه الدالة يمكن أن تعمل على أي جدول
أنا لي وقفة مثلا هل الجدول لابد أي يحتوي على عمودين varchar2 مشممكن ان الجدول يكون مثلا به أعمدة ليست char ماذا يحدث كيف ستعمل هذه الفانكشن على جدول به هذه الاعمدة
لاعرف هذا مالاحظته

طبعا الثاني ليس به مشكلة
ياريت مشاركة أخرى من أحد

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

ماشى انا معاك في نفس التفكير في الاجابه الاولى طيب التانيه ايه المشكله لو اي من parameter قيمته ب Null
انا شايفه ان الاجابه التانيه فيها حاجه غريبه انا مش فهماها بس لاقيت اكتر من مصدر بيأكدها وكاتبين التفسير
if any parameters passed in are null then the result will be null and the function will attempt to return null value
ماشى ايه المشكله لما ترجع null

بتاريخ:

السلام عليكم ورحمة الله وبركاته
الاخت الكريمة
الحل بسيط جدا وسهل

اولا الكود الصحيح كالاتى

create or replace function g_mail(f1 varchar2 [u]default nul[/u]l ,f2 varchar2 [u]default null[/u])
return varchar2
is
v_mail varchar2(50);
begin v_mail:=substr(f1,1,1)||substr(f2,1,1)||'@oracle';
return v_mail;
end;



يجب ان تجعلى فى parameters القيمة default تساوى null
وبالتالى اذا تم تنفيذ الدالة بدون وضع اى قيم اليها فانها تعمل ايضا

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

اشكرك على الرد بس الكود صحيح مش انا حتى العملاه انا عايزه اعرف ليه الاجابه التانيه صح لانى جربت اضع اي من
من parameter او الاتنين مع بعض ب Null وبرده بيكون الناتج varchar2 يعنى ال null مش مأثره اساسا
سؤالى هو ليه تكون الاجابه التانيه صحيحه
وفي حاجه غريبه في التفسير انه كاتب لو التنين ب null هيكون القيمه Null بس ده غلط لان النتيجه هتكون
@oracle

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

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

الداله بس كده وباقى الاختيارت غلط هما دول العليهم الاختلاف

بتاريخ:

اختى الكريمة .....
لو خدنا ظاهر الاجابتين يبقى الاجابتين صحيحتين ، لكن الموضوع يعتمد على فهم السؤال والاجابة .. انا ممكن افسر كل اجابه انها صح وممكن افسرها انها غلط

الاجابة الاولى : صح في حالة ما إذا كان الاجابة المقصود بيها ان الفانشكن عامة مش مخصوصة لجدول معين ، وبالتالي يمكن استخدامها مع اي جدول ، بمعنى انها فانكشن مش مبنيه على جدول معين .... يبقى لو ده المقصود من الاجابة يبقى الاجابة صحيحة .
وغلط في حالة ما إذا كان المقصود انها تستخدم مع اي جدول بغض النظر عن بناء الجدول يعني كام عدد الكولمن ، ممكن يكون واحد بس في الجدول يبقى في الحالة ده الفانكشن ده هتضرب عشان انت بصيتي براميتر واحد بس زي ما قال الاخ مصطفى ، لكن انا باختلف معاه في نوع الكولمن مفيش مشكلة لو من اي نوع ، لان نوع البراميتر VARCHAR ، وبالتالى هيحصل عملية كونفرت طبيعي سواء إذا كان الحقل المدخل DATA,NUMBER .

الاجابة التانية : صح في حالة انه لو كان المقصود من الاجابة انك لازم تبصي قيمتين للبرامترين ومينفعش يكون واحد فيهم مش متباصي له قيمة وده المقصود في الحالة ده بكلمة NULL

خطأ : لو كان المقصود من الاجابة انك ما يفنعش تاصي قيمة NULL لا ينفع عادي ، والفانكشن هترجع بـ VARCHAR برضه اللي هي على الاقل كلمة @oracle

يبقى الاجابة على فهم السؤال
وانما الاعمال بالنيات بأه :)
تقبلي تحياتي

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

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

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

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

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

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.