mostfa_future بتاريخ: 5 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 5 ديسمبر 2009 CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE (FIRST_NAME VARCHAR2 :='FIRST_NAME',EMPLOYEE_ID number ,LAST_NAME VARCHAR2 :='LAST_NAME' , EMAIL VARCHAR2 :='email' ,JOB_ID VARCHAR2 := ' SA_REP ',MANAGER_ID number := 145,SALARY number:= 1000, COMMISSION_PCT number:= 0,DEPARTMENT_ID number := 30,HIRE_DATe date :=sysdate) IS BEGIN INSERT INTO employees (EMPLOYEE_ID, FIRST_NAME, LAST_NAME , EMAIL,JOB_ID ,MANAGER_ID ,SALARY, COMMISSION_PCT, DEPARTMENT_ID,HIRE_DATe) VALUES (EMPLOYEES_SEQ .NEXTVAL, FIRST_NAME,LAST_NAME,EMAIL,JOB_ID ,MANAGER_ID,SALARY , COMMISSION_PCT,DEPARTMENT_ID,HIRE_DATe); END ; begin ADD_EMPLOYEE (FIRST_NAME=>' TRAINING '); end; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rachid_to_dba بتاريخ: 5 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 5 ديسمبر 2009 (معدل) can you , we display the error message generated to faciltate its localisation thanksplease my friend use the 'code' option when you write a code like this just for the lisibilitethanksbut I think that the problem is here: ADD_EMPLOYEE (FIRST_NAME=>' TRAINING '); becausewhen you have define your procedure you have passed it more than one paremeter and when you have call it you have just specifie one parameterbut I want seen the error message pleasethanks تم تعديل 5 ديسمبر 2009 بواسطة rachid_to_dba اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 6 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 السلام عليكم في جمله ال INSERT في لخبطهفي ترتيب الاعمده عامه قارن بين ال Procedure ده وبتاع حضرتك ومش لازم تزود عمود ال id لانك بتملاه عن طريق ال seq CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE (FIRST_NAME VARCHAR2:='FIRST_NAME',LAST_NAME VARCHAR2:='LAST_NAME', EMAIL VARCHAR2:='e',HIRE_DATE date:=sysdate,JOB_ID VARCHAR2:='SA_REP',SALARY number:=1000, COMMISSION_PCT number:=0,MANAGER_ID number:=145,DEPARTMENT_ID number:=30) IS BEGIN INSERT INTO hr.employees(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,HIRE_DATE,JOB_ID,SALARY,COMM ISSION_PCT ,MANAGER_ID,DEPARTMENT_ID) VALUES (hr.EMPLOYEES_SEQ.NEXTVAL,FIRST_NAME,LAST_NAME,EMAIL,HIRE_DATE,JOB_ID,SALARY, COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID); END ; ) جرب كده اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 6 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 السلام على من اتبع الهدىrachid_to_dbaاخى الفاضل كلامك صح المشكله مش فى PROCEDURE مشكله فى الانفوك ولكان انا جميع parameterيوجد فيه قيمه مبتدائيه مفروض يشتغل مجرد اما اعمل انفوك من غير وضع اى قيمه داخل parameterADD_EMPLOYEE (FIRST_NAME=>' TRAINING ');*ERROR at line 2:ORA-06550: line 2, column 1:PLS-00306: wrong number or types of arguments in call to 'ADD_EMPLOYEE'ORA-06550: line 2, column 1:PL/SQL: Statement ignoredsara gamalاختى الفاضله المشكله مش فىPROCEDURE المشكله فى الانفوك ونا جربت PROCEDURE بتاعك Warning: Procedure created with compilation errors.وجزاكم الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 6 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 (معدل) السلام عليكم انا جربت كود حضرتك وطلع نفس الخطأ الحضرتك كاتبه وجربت اعدل فيه واشتغل عادى والقيمه دخلت في الجدول ده الكود وجربته تانى واشتغل يمكن المشكله في الكود الاول في عمليه ال copy وال paste CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE (FIRST_NAME VARCHAR2:='FIRST_NAME',LAST_NAME VARCHAR2:='LAST_NAME', EMAIL VARCHAR2:='e',HIRE_DATE date:=sysdate,JOB_ID VARCHAR2:='SA_REP',SALARY number:=1000, COMMISSION_PCT number:=0,MANAGER_ID number:=145,DEPARTMENT_ID number:=30) IS BEGIN INSERT INTO hr.employees(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,HIRE_DATE,JOB_ID,SALARY ,COMMISSION_PCT ,MANAGER_ID,DEPARTMENT_ID) VALUES (hr.EMPLOYEES_SEQ.NEXTVAL,FIRST_NAME,LAST_NAME,EMAIL,HIRE_DATE,JOB_ID,SALARY, COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID); END; execute ADD_EMPLOYEE (FIRST_NAME=>'TRAINING'); وده الريكورد الدخل في الجدولhttp://www.arb-up.com/p1eozlmyt3cc/code.bmp.html تم تعديل 6 ديسمبر 2009 بواسطة sara gamal اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 6 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 جزاك الله خير اشتغل فعلانولكان ارجو توضيح الخطاء فى الكود الاول اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 7 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 7 ديسمبر 2009 انا كل العملته انى رتبت الاعمده في جمله ال insert وال parameterواشتغل على كده بس مظنش ان ده كان سبب المشكله لانى نفذت كود مشابهه وملخبطه ترتيب الاعمده واتنفذ عادى جدا CREATE OR REPLACE PROCEDURE add_dept(name varchar2:='Unknown',loc number DEFAULT 1700) IS BEGIN INSERT INTO hr.departments(department_id,location_id,department_name) VALUES (hr.departments_seq.NEXTVAL,loc,name); END add_dept; EXECUTE add_dept (loc =>1200) فمعرفش بصراحه وياريت لو حد عنده فكره يوضحها عشان نعرف اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rachid_to_dba بتاريخ: 8 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 8 ديسمبر 2009 (معدل) جزاك الله خير اشتغل فعلانولكان ارجو توضيح الخطاء فى الكود الاول السلام عليكم اولااسف ع التاخير في الرد والحمد الله ان الاخت sara gamal حلت الموضوع بس الغلط وينو ؟ ركز انت قلتلي من قبل السلام على من اتبع الهدىrachid_to_dbaاخى الفاضل كلامك صح المشكله مش فى PROCEDUREمشكله فى الانفوك ولكن انا جميع parameterيوجد فيه قيمه مبتدائيه مفروض يشتغل مجرد اما اعمل انفوك من غير وضع اى قيمه داخل parameterوانا موافق معاك بس خلينا نشوف the defenition of your procedure CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE (FIRST_NAME VARCHAR2 :='FIRST_NAME',EMPLOYEE_ID number,LAST_NAME VARCHAR2 :='LAST_NAME' ,EMAIL VARCHAR2 :='email' ,JOB_ID VARCHAR2 := ' SA_REP ',MANAGER_ID number := 145,SALARY number:= 1000,COMMISSION_PCT number:= 0,DEPARTMENT_ID number := 30,HIRE_DATe date :=sysdate) وهلا خلينا نشوف the call of your procedure ADD_EMPLOYEE (FIRST_NAME=>' TRAINING ') انا اقول انو الغلط في EMPLOYEE_ID number اذاركزت هيذا ما عندو قيمة مبدايةثم اصلا في هذا المستوى من procedure لا نعرف بعد قيمته لانها متعلقة بقيمة اللي قبلو في الجدولومن شان هيك لما وصل لل call of your procedure صحيح انو وجد قيم مبدأية لبقية البارامترات لكن EMPLOYEE_ID فما عندو قيمة ابتدائية .اما INSERT لم تكن خاطئة وليس مهم ترتيب الاعمدة حسب الجدول وانما المهم اننا نحترم الترتيب بين اسم العمود في INTO وما يقابله من قيمة في VALUESوارجو سماع راييكما فيما قلت سلام عليكم تم تعديل 8 ديسمبر 2009 بواسطة rachid_to_dba اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 8 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 ديسمبر 2009 السلام على من اتبع الهدى اخى الفاضل بعض التحيهلالاسف كلامك بردك غلاضلان فى بناء هذا الجدول هو معتمد علىEMPLOYEES_SEQلانه PRIMARY KEYوانا استخدمت نفس الطريقه ومش محتاج اعرف قيم الارقام الى فى جدول لان EMPLOYEES_SEQمش ممكن تتكرار ويارت تركز فى كود sara gamalلان اشتغل فعلا بس المشكله انو مفيش فرق بينه وبين الكود بتاعى او احنا مش شايفن الفرق دهو شكراا على اهتمامك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rachid_to_dba بتاريخ: 9 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 9 ديسمبر 2009 (معدل) السلام على من اتبع الهدى اخى الفاضل بعض التحيهلالاسف كلامك بردك غلاضلان فى بناء هذا الجدول هو معتمد علىEMPLOYEES_SEQلانه PRIMARY KEYوانا استخدمت نفس الطريقه ومش محتاج اعرف قيم الارقام الى فى جدول لان EMPLOYEES_SEQمش ممكن تتكرار ويارت تركز فى كود sara gamalلان اشتغل فعلا بس المشكله انو مفيش فرق بينه وبين الكود بتاعى او احنا مش شايفن الفرق دهو شكراا على اهتمامك وعليكم السلام اهلا وسهلا ومرحبا فيك اخي mostfa_futureفعلا زي ما قلت تمام معناتولانو EMPLOYEE_ID لا يحتاج قيمة ابتدائية (اصلا اذا حاولنا فعل هذا سنخرق قوانين Primary Key) واكيد تمام مثل ما اتفضلت راح ياخذ قيمتو من خلال EMPLOYEES_SEQمن شان هيك ما كان لازم تحطو براميتر في the definition of your procedure واذا ركزت سواء بالكود الاول او حتى الثاني اللي حاطيتهن الاخت sara gamal فراح تتنبه لانو في the definition of the procedure ما عملو EMPLOYEE_ID وهذا منطقي لانو مش احنا اللي نحدد لو قيمتو الابتدائية بس هو زي ما قلنا سابقا متعلق ب EMPLOYEES_SEQوهيذا هو الفرق بين your procedure و the procedure of sara gamal ومن شان هيك الحل تبع الاخت صارة اشتغل بعكس your procedureراح اشرح اكثراحنا شو هدفنا من ال procedure اصلاهدفنا من procedure اننا نقوم بتمرير معطيات من شان نستخدمها داخل procedure من شان بالاخير نقوم بعمل معين اي for to complete a specific action فاذا اذا EMPLOYEE_ID ممكن حسابو ومعرفتو من غير ما نمرره واكثر من هيذا ،قيمتو بتعتمد ع شي ثاني ،فاكيد انو ع مستوى the head of the procedure احنا ما ممكن نتخيل شو هالشي . ومن شان هيك مثل هته البراميترات لا توضع في the head of the procedure thanks very matchوانا مستني تعليقك ان شاء الله تم تعديل 9 ديسمبر 2009 بواسطة rachid_to_dba اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 9 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 9 ديسمبر 2009 السلام على من اتبع الهدى اخى الكريم صدقت فعلا كلامك صح و بعض التجربه جزاك الله خير اشكرك على اهتمامك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.