إستفسار
هل أستطيع أن أحصل على نسخه مجانيه من الأوركل عن طريق الإنترنت أم لا وكيف؟
لم أبدأ فى الدرس الثامن و أنتظر الحصول على نسخه قد تصلنى قريباً
إستفسار
هل أستطيع أن أحصل على نسخه مجانيه من الأوركل عن طريق الإنترنت أم لا وكيف؟
لم أبدأ فى الدرس الثامن و أنتظر الحصول على نسخه قد تصلنى قريباً
تحديات الدرس التاسع :
التحدي الاول ...
تخيل انه يوجد موظفين أرصدتهم في البنك مايلي ..
10.25عشرة دولارات وربع ...
20.5عشرون دولار ونصف ...
1000000.945مليون دولار وتسع مئة وخمسة واربعون من العشرة ...
يوجد جدول يدعى بـBANKمثلا .....
اريد عرض النتائج بهذه الصورة
$0,00,00,10.25
$0,00,00,20.5
$1,00,00,00.945
وهلم جر !!
فرضت أن الجدول Bank به عمود يدعى acc فيه أرصدة الموظفين فيكون الأمر كالتالي :
Select to char(acc , '$0,00,00,00.999') from bank ;
التحدي الثاني يقول ...
كود:
select to_char(sysdate,'ddsp/mmsp "or" ddth/mmth "or" ddspth "from" mmspth "month" ') from dual ;
يوجد كلمةmonth ... الم يكن من المفترض ان تتحول الى شهر ؟؟؟
النتيجة كانتهكذا .....
three/one or 03rd/01st or third from first month
لماذا لم تتحول كلمةmonthالى الشهر في تاريخsysdateأي لماذا لم تتحول الىJanuaryمثلا ؟؟؟
لأنها موضوعة بداخل علامة التنصيص الثنائية التي تعني إعرض ما بداخل العلامة كما هو فأي شئ يكون مكتوب بداخلها يعرض كما هو تماما حتى و لو كان من الكلمات المحجوزة .
التحدي الثالث !!
كود:
select round (to_date('16/12/2006','dd/mm/yy'),'month') from dual;
مالنتيجة المتوقعة ولماذا ؟؟
النتيجة ستكون 1/1/2007 لأن اليوم أكبر من 15 إذا يقرب التاريخ إلى الشهر التالي ، و بما أن الشهر الحالي هو ديسمبر أي آخر شهر في السنة إذا سيقرب التاريخ إلى الشهر الأول في العام 2007 و هو أول شهر بعد الشهر الثاني عشر في العام 2006 .
التحدي الرابع ...
..
اريد الجملةNO MANAGER !! اذا كان القيمة خالية فيعمودmgr
وكتبنا هذه الجملة والتي كانت خطأ
كود:
select ename,NVL(mgr,'NO MANAGER') from emp where ename ='KING';
نريد التصحيح ,,,
ممممممممم
صعب .............
جاري التفكير ...
التحدي الخامس :
كود:
select sum(sal+comm) from emp ;
كانت نتيجتها اقل من مجموع الرواتب .. وهي من المفترض ان تكون اكثر !!
فسر لي .. لماذا ظهرت النتيجة اقل ؟؟
واخبرني مالحل .. وماالعمل ؟؟ ما الجملة البديلة ؟؟
ظهرت نتيجة أقل لأن الدالة sum حسبت الرواتب الكلية للموظفين الذين يمتلكون قيم غير خالية في رواتبهم الإضافية فقط ، أي الموظفين الثلاث الذين يمتلكون رواتب إضافية و الموظف الذي راتبه الإضافي يساوي صفر . و أعتقد لحل هذه المشكلة ممكن كتابة هذا الأمر :
Select sum(sal) + sum(comm) from emp ;
أخي حمزة ......
لم أستطع الحصول على نسخة من الأوراكل
هل تعرف موقع أستطيع تحميل نسخة منه ؟ أو تورنت مثلا ؟؟
و مشكووووووور على مجهودك
.....
أعتقد أني عرفت حل التحدي الرابع
ليس صعبا !!!
التحدي الرابع ...
.. اريد الجملة NO MANAGER !! اذا كان القيمة خالية فيعمود mgr
وكتبنا هذه الجملة والتي كانت خطأ
كود:
select ename,NVL(mgr,'NO MANAGER') from emp where ename ='KING';
نريد التصحيح ,,,
نحول الرقم إلى نص حتي نضع نص أيضا في المدخل الثاني :
select ename,NVL(to_char(mgr,9999),'NO MANAGER') from emp where ename ='KING';
أعتقد أني عرفت حل التحدي الرابع
ليس صعبا !!!
التحدي الرابع ...
.. اريد الجملة NO MANAGER !! اذا كان القيمة خالية فيعمود mgr
وكتبنا هذه الجملة والتي كانت خطأ
كود:
select ename,NVL(mgr,'NO MANAGER') from emp where ename ='KING';
نريد التصحيح ,,,
نحول الرقم إلى نص حتي نضع نص أيضا في المدخل الثاني :
select ename,NVL(to_char(mgr,'9999'),'NO MANAGER') from emp where ename ='KING';
السلام عليك يا جافا
لقد حصلت على نسخه 9i و سطبتها بمساعدة صديق و لكن بعد التسطيب أحياناً يعمل ال sql plus و أحياناً كثيره لا يعمل و بيطلعلى رساله no listener و يطلب , password username من جديد
فما هو الحل
السلام عليكم ...
لا اعرف نسخة مجانية الا من نفس موقع الشركة اوراكل ,,
لذا .. ابحثو هناك ^^ ...
اعتقد ان مشكلتك مع الاس كيو ال بلص .. هو انك تستخدمه اول ما تفتح الجهاز
اصبر عليه خمس دقائق بالكثير .. وبعدين شغله ....
هل فهمت ^^
اذا فيه مشاكل .. اخبرني
تحديات الدرس الثامن :
select initcap(upper(lower('HI My friends ^^'))) from dual ;
مالذي سوف ينتج ؟؟؟؟
سيتم تنفيذ الداله initcap لأن أولاً سيتم أخذ ال lower case للجمله ثم يتم أخذ ال upper للجمله و أخيراً يتم تنفيذ ال initcap على الجمله لأنها أخر داله و هو ما يظهر بالنتيجه
التحدى الثانى
select concat(concat(concat (substr(ename,1,length(ename)-1),'+'),concat(substr(ename,length(ename),1),'=')),ename)all_of_them from emp;
حل أخر
select concat (substr(ename,1,length(ename)-1),'+')||concat(substr(ename,length(ename),1),'=')||ename as all_of_them from emp;
التحدى الثالث
لأنه قام بقسمة اليوم الزائد على شهر (على 30) فنتج هذا الكسر حيث أن البرنامج يقوم بتحويل الايام و السنين الى شهور و الدليل انه يتم تحويل كل سنه الى 12 شهر
التحدى الرابع
select TRUNC((months_between(sysdate,hiredate))/12,0) as years,trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)
as months,trunc((((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12)-(trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)))*30,0)as days ,hiredate,sysdate from emp;
طبعاً واضح إنى عملت جمله كبييييييييييييره قوى بس ده اللى قدرت عليه لما حاولت لوحدى
لكن لما لاحظت إنك إستخدمت الداله mod بكل بساطه لم اصدق نفسى على كل الوقت الضائع
الأعوام و الشهور عملتها مثلك بالظبط تقريباً ولكن فى الأيام أنظر الفارق
طريقتك فى الايام
TRUNC( MOD(months_between(sysdate,hiredate)*31,31),0) days
معكوكتى
,trunc((((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12)-(trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)))*30,0)
لكنى لم أفهم لماذا ضربت فى 31 ثم سويت mod مع 31 مره أخرى أرجو الشرح
بالمناسبه كان الدرس شيقاً جداً خصوصاً مع وجود تحديات رائعه تدعو للتفكير
وجزاك الله خيراً
بالمناسبه انا أعتبرت إن كل شهور السنه 30 يوم إفتراضياً
ما قسمتش شهور السنه على 30 و 31 و 29 لأنى الصراحه مش حافظهم
فى الدرس التاسع هناك شىء لم افهمه و هو إستخدام الدبل كوتيشن "
حيث قمت أنت بحل أحد الأمثله هكذا
select to_char(hiredate,'DAY "OF" MONTH YYYY "IN" HH:MI:SS AM') from emp ;
فى حين قمت أنا بعملها هكذا
select to_char(hiredate,'day'),('of'),to_char(hiredate,'month'),to_char(hiredate,'year'),('in'),to_char(hir edate,'hh:mi:ssam')from emp;
فكانت طويله شويه بدون إستخدام " فأنا أريد معرفة متى نستخدم هذه العلامه
السلام عليكم ^^
مستعجلين على معرفة الاجابات ؟؟
^^ ؟؟؟ اريد اجابة منكم
انا ردى هيكون واحد
المهم فالأهم
و أنا يهمنى الصراحه إن الدروس بتاعتك تبقى أسرع شويه صغيره لكن الإجابات هتتحل تتحل إن شاء الله
ولى سؤال بسيط
إحنا كده بعد اللى خدناه فى الدروس نعتبر قطعنا قد ايه من المشوار ربع ثمن عشر؟
و إمتى اقدر أقول إن فعلاً برمجة قواعد البيانات دى مجالى و اقدر ابدع فيه؟ هل بعد sql plus مثلاً و لا بعد الفورمات و التقارير؟
قصدى اقول بعد plsqlالمشاركة الأصلية كتبت بواسطة horsaka
تحديات الدرس التاسع
التحدى الأول
select to_char(sal,'$00,00,00,00.999')from bank;
التحدى الثانى
select to_char(sysdate,'ddsp/mmsp "or" ddth/mmth "or" ddspth "from" mmspth "month" ') from dual ;
يوجد كلمة month ... الم يكن من المفترض ان تتحول الى شهر ؟؟؟
النتيجة كانت هكذا .....
three/one or 03rd/01st or third from first month
لماذا لم تتحول كلمة month الى الشهر في تاريخ sysdate أي لماذا لم تتحول الى January مثلا ؟؟؟
الإجابه لأنها كانت بين " " فكتبها كما هى
التحدى الثالث
select round (to_date('16/12/2006','dd/mm/yy'),'month') from dual;
مالنتيجة المتوقعة ولماذا ؟؟
1/1/2007
لأن 16-12 أكبر من 15-12 فهى فى الشهر التالى و الذى يكون يناير العام القادم
التحدى الرابع
select ename,NVL(to_char(mgr),'NO MANAGER') from emp where ename ='KING';
التحدى الخامس
فسر لي .. لماذا ظهرت النتيجة 7800 دولار ؟؟ مع العلم ان دالة SUM دالة ذكية !!
واخبرني مالحل .. وما العمل ؟؟ ما الجملة البديلة ؟؟
لانها أخرجت نتيجة الموظفين الذين لهم رواتب إضافيه فقط حيث أن فى حالة عدم و جود راتب إضافى تكون قيمة (null)
والجمله البديله هى
select sum(sal + NVL(comm,0))from emp;
الى الأخ brainy
بالنسبه لنسخة أوركل قام احد اصدقائى بتنزيلها من برنامج edonkey لكن لم تتم تجربتها بعد
لو عايز أسألهولك أي برنامج و كيف البحث