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

ماهو مشكله هذا Procedure

Featured Replies

بتاريخ:

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;

بتاريخ:

can you , we display the error message generated
to faciltate its localisation
thanks



please my friend use the 'code' option when you write a code like this
just for the lisibilite
thanks


but I think that the problem is here:
ADD_EMPLOYEE (FIRST_NAME=>' TRAINING ');

because
when you have define your procedure you have passed it more than one paremeter
and when you have call it you have just specifie one parameter


but I want seen the error message please
thanks

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

بتاريخ:

السلام عليكم

في جمله ال 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 ; 
)



جرب كده

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

السلام على من اتبع الهدى
rachid_to_dba
اخى الفاضل كلامك صح المشكله مش فى PROCEDURE
مشكله فى الانفوك ولكان انا جميع parameter
يوجد فيه قيمه مبتدائيه مفروض يشتغل مجرد اما اعمل انفوك من غير وضع اى قيمه داخل parameter

ADD_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 ignored
sara gamal
اختى الفاضله
المشكله مش فىPROCEDURE
المشكله فى الانفوك ونا جربت PROCEDURE بتاعك Warning: Procedure created with compilation errors.
وجزاكم الله خير

بتاريخ:

السلام عليكم
انا جربت كود حضرتك وطلع نفس الخطأ الحضرتك كاتبه وجربت اعدل فيه واشتغل عادى والقيمه دخلت في الجدول
ده الكود وجربته تانى واشتغل يمكن المشكله في الكود الاول في عمليه ال 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

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

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

جزاك الله خير اشتغل فعلان
ولكان ارجو توضيح الخطاء فى الكود الاول

بتاريخ:

انا كل العملته انى رتبت الاعمده في جمله ال 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)


فمعرفش بصراحه وياريت لو حد عنده فكره يوضحها عشان نعرف

بتاريخ:
جزاك الله خير اشتغل فعلان
ولكان ارجو توضيح الخطاء فى الكود الاول



السلام عليكم اولا
اسف ع التاخير في الرد والحمد الله ان الاخت 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


وارجو سماع راييكما فيما قلت

سلام عليكم

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

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

السلام على من اتبع الهدى اخى الفاضل بعض التحيه
لالاسف كلامك بردك غلاض
لان فى بناء هذا الجدول هو معتمد علىEMPLOYEES_SEQ
لانه PRIMARY KEY
وانا استخدمت نفس الطريقه ومش محتاج اعرف قيم الارقام الى فى جدول لان EMPLOYEES_SEQ
مش ممكن تتكرار
ويارت تركز فى كود sara gamal
لان اشتغل فعلا بس المشكله انو مفيش فرق بينه وبين الكود بتاعى او احنا مش شايفن الفرق ده
و شكراا على اهتمامك

بتاريخ:
السلام على من اتبع الهدى اخى الفاضل بعض التحيه
لالاسف كلامك بردك غلاض
لان فى بناء هذا الجدول هو معتمد على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
وانا مستني تعليقك ان شاء الله

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

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

السلام على من اتبع الهدى
اخى الكريم صدقت فعلا كلامك صح و بعض التجربه
جزاك الله خير
اشكرك على اهتمامك

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

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

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

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

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

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.