بتاريخ: 22 مايو 201015 سنة comment_192553 اخواني لدي الجدول التالي CREATE TABLE EMP (EMPNO NUMBER(4) NOT NUL ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7, 2), COMM NUMBER(7, 2), DEPTNO NUMBER(2)) واخلت فيه البيانات التالية SQL> INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), 800, NULL, 20); SQL> INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30); SQL> INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30); SQL> INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, TO_DATE('2-APR-1981', 'DD-MON-YYYY'), 2975, NULL, 20); SQL> INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30); SQL> INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1-MAY-1981', 'DD-MON-YYYY'), 2850, NULL, 30); SQL> INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'), 2450, NULL, 10); SQL> INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20); SQL> INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10); SQL> INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('8-SEP-1981', 'DD-MON-YYYY'), 1500, 0, 30); SQL> INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20); SQL> INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 950, NULL, 30); SQL> INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 3000, NULL, 20); SQL> INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10 ); وبدي لعمل check على حقل HIREDATE واذا كان التاريخ يقع بين 1/1/1981-13/1/1981 يقوم بتعديل راتب الموظف الى 1000 وعملت الكود التالي بس ما عم يتنفذ معي declare mar date; cursor mo_cursor is select to_char(hiredate,'dd/mm/yyyy') from emp; begin open mo_cursor; loop fetch mo_cursor into mar; exit when mo_cursor%notfound; if hiredate between to_char('1981/01/01','dd/mm/yyyy') AND to_char('1981/12/31','dd/mm/yyyy''); then update emp set sal = 100 where to_char(hiredate,'dd/mm/yyyy') = mar; else update mohammed4 set sal = 50 where to_char(hiredate,'dd/mm/yyyy') = mar; end if; end loop; close mo_cursor; commit; end; تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة كاتب الموضوع comment_192560 اخوان ياريت حدى يعطيني جواب لان صارلي فترة وانا احاول ومافي نتيجة تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة comment_192561 السلام عليكم اخياكتب هذا الكود .. واخبرني النتيجة DECLARE cursor mo_cursor is select to_DATE(hiredate,'dd/mm/RRRR') HIREDATE,SAL from emp; begin for rec_1 in mo_cursor loop if rec_1.hiredate BETWEEN TO_DATE('01/01/1981','dd/mm/RRRR') AND TO_DATE('13/01/1981','dd/mm/RRRR') then update emp set sal = 1000 WHERE HIREDATE = REC_1.HIREDATE; else null; end if; end loop; COMMIT; end; / تم تعديل 22 مايو 201015 سنة بواسطة Abdallah.Hasan تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة comment_192562 اخي هناك ملاحظة ان في التواريخ المدخلة لا يوجد إلا تاريخ واحد ضمن فترة التعديلالرجاء ادخال بيانات اخرى ضمن الفترة ما بين 1/1/1981 و 13/1/1981استخدم الكود أعلاه واخبرني النتيجة؟؟ تم تعديل 22 مايو 201015 سنة بواسطة Abdallah.Hasan تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة كاتب الموضوع comment_192587 اخي العزيز عبد الله جربت الكود واشتغل اسال الله العظيم ان يرزقك في الدنيا حسنة وفي الاخرة حسنة ويقيك من عذاب النار انت ووالديك ومن تحب ويزيد من علمك وفهمكاخي الفاضل ممكن تتكرم على بأضافة شئ اخر الى الكود ، حيث اني عندما اكمل هذا الكود سأكون بأذن الله قد انهيت بحثي تقريبا في الجامعةاذا ممكن عندما يتحقق الشرط اي اي عندما تكون بين مثلا 1/1/2000 - 1/1/2005 يتم تعديل الراتب sale الى 100 وفي نفس الوقت يتم تعديل الوظيفة job الى managerاما اذا كان التاريخ بين 1/1/2006 الى 1/1/2010 يتم تعديل الراتب sale الى 200 وفي نفس الوقت يتم تعديل الوظيفة job الى clerk حيث اني اريد ان اعمل اكثر من if اكثر من شرط وعمدما يتحقق كل منها يتم تعديل قيمة حقلينبارك الله فيك وفي الجميع تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة كاتب الموضوع comment_192596 اخي العزيز عبد الله جربت الكود واشتغل (تم النفيذ على اكمل وجه) اسال الله العظيم ان يرزقك في الدنيا حسنة وفي الاخرة حسنة ويقيك من عذاب النار انت ووالديك ومن تحب ويزيد من علمك وفهمكاخي الفاضل ممكن تتكرم على بأضافة شئ اخر الى الكود ، حيث اني عندما اكمل هذا الكود سأكون بأذن الله قد انهيت بحثي تقريبا في الجامعةاذا ممكن عندما يتحقق الشرط اي اي عندما تكون بين مثلا 1/1/2000 - 1/1/2005 يتم تعديل الراتب sale الى 100 وفي نفس الوقت يتم تعديل الوظيفة job الى managerاما اذا كان التاريخ بين 1/1/2006 الى 1/1/2010 يتم تعديل الراتب sale الى 200 وفي نفس الوقت يتم تعديل الوظيفة job الى clerk حيث اني اريد ان اعمل اكثر من if اكثر من شرط وعمدما يتحقق كل منها يتم تعديل قيمة حقلينبارك الله فيك وفي الجميع تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة كاتب الموضوع comment_192602 اخي العزيز عبد الله جربت الكود واشتغل (تم النفيذ على اكمل وجه) اسال الله العظيم ان يرزقك في الدنيا حسنة وفي الاخرة حسنة ويقيك من عذاب النار انت ووالديك ومن تحب ويزيد من علمك وفهمكاخي الفاضل ممكن تتكرم على بأضافة شئ اخر الى الكود ، حيث اني عندما اكمل هذا الكود سأكون بأذن الله قد انهيت بحثي تقريبا في الجامعةاذا ممكن عندما يتحقق الشرط اي اي عندما تكون بين مثلا 1/1/2000 - 1/1/2005 يتم تعديل الراتب sale الى 100 وفي نفس الوقت يتم تعديل الوظيفة job الى managerاما اذا كان التاريخ بين 1/1/2006 الى 1/1/2010 يتم تعديل الراتب sale الى 200 وفي نفس الوقت يتم تعديل الوظيفة job الى clerk حيث اني اريد ان اعمل اكثر من if اكثر من شرط وعمدما يتحقق كل منها يتم تعديل قيمة حقلينبارك الله فيك وفي الجميع تقديم بلاغ
بتاريخ: 22 مايو 201015 سنة comment_192606 السلام عليكم اخي الكريمتفضل الكود ... جربه وأخبرني النتيجة : DECLARE cursor mo_cursor is select to_DATE(hiredate,'dd/mm/RRRR') HIREDATE,SAL,Job from emp; begin for rec_1 in mo_cursor loop if rec_1.hiredate BETWEEN TO_DATE('01/01/2000','dd/mm/RRRR') AND TO_DATE('01/01/2005','dd/mm/RRRR') then update emp set sal = 100 , job = 'Manager' WHERE HIREDATE = REC_1.HIREDATE; elsif rec_1.hiredate BETWEEN TO_DATE('01/01/2006','dd/mm/RRRR') AND TO_DATE('01/01/2010','dd/mm/RRRR') then update emp set sal = 200 , job = 'Clerk' WHERE HIREDATE = REC_1.HIREDATE; else null; end if; end loop; COMMIT; end; / تقديم بلاغ
بتاريخ: 23 مايو 201015 سنة كاتب الموضوع comment_192610 بارك الله فيك يأ اخ عبد الله وسدد خطاك وزادك علم الكود اشتغل وتنفذ اللهم ارزقنا حبك وحب من احبك وحب عمل صالح يقربنا الى حبك اللهم وفق الاخ عبد الله ، وسهل امره في الدنيا والاخرة ، هو ووالديه وكافة المسلمين يا أرحم الراحمين تقديم بلاغ
بتاريخ: 23 مايو 201015 سنة comment_192613 بارك الله فيك يأ اخ عبد الله وسدد خطاك وزادك علم الكود اشتغل وتنفذ اللهم ارزقنا حبك وحب من احبك وحب عمل صالح يقربنا الى حبك اللهم وفق الاخ عبد الله ، وسهل امره في الدنيا والاخرة ، هو ووالديه وكافة المسلمين يا أرحم الراحمين بارك الله فيك أخي الكريم ... بالتوفيق إن شاء الله تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.