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

بتاريخ:

السلام عليكم ورحمة الله وبركاته

أرجو مساعدتي في حل هذا السؤال

أنشئ روتيناً اسمه ADD_PROD لإدراج منتج جديد في جدول المنتجات PRODUCT ،
استخدم رقم المنتج و الوصف كباراميترات للروتين .
-- نفذ الروتين المكتوب في الفرع الأول أعلاه ، ثم استدعي الروتين مع إعطائه مدخلات معينة ،
ومن ثم استفسر عن جدول المنتجات PRODUCT لملاحظة النتائج .



وشكرا لكم

بتاريخ:

مرحبا أخي الكريم
إليك الإجراء التالي الذي يقوم بإضافة رقم منتج واسمه :
CREATE OR REPLACE PROCEDURE ADD_PROD(NEW_PROD_NUM IN DEPT.DEPTNO%TYPE,
NEW_PROD_NAME IN DEPT.DNAME%TYPE )
IS
BEGIN
INSERT INTO PRODUCT(PROD_NUM,PROD_NAME)
VALUES(NEW_PROD_NUM,NEW_PROD_NAME);
END ADD_PROD;

وتسطيع تنفيذه :

EXECUTE ADD_PROD(10,'THE PRODUCT NAME');

على حسب مافهمت منك .... أرجو أن يكون هذا هو ماتريد

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

أشكرك أخي الكريم الطريقة ناجحة 100%

أشكرك من أعماق قلبي

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

طيب أخي الكريم (( هنالك سؤالان أيضا متعلقان به )) ممكن ؟ أنا بتعبك معاي لكن اسمح لي فأنا مبتدأ


وهو : أنشئ روتيناً اسمه UPD_PROD لتعديل وصف منتج لمنتجٍ ما في جدول PRODUCT وزود هذا الروتين ببراميتر يمثل رقم المنتج وآخر يمثل الوصف الجديد ، أضف جزءاً خاصاً بمعالجة إستثناء عدم وجود منتج للتعديل .

-- نفذ الروتين المكتوب في الفرع أعلاه ، ثم استدع الروتين مع إعطائه مدخلات معينة ، ومن ثم استفسر عن جدول المنتجات PRODUCT لملاحظة النتائج .
قم بمناداة الروتين مع تزويده برقم منتج غير موجود في الجدول.

-----------------------------------------------------------------------

أنشئ روتيناً اسمه DEL_PROD لحذف منتج ما في جدول PRODUCT ، وزود هذا الروتين ببراميتر يمثل رقم المنتج المراد حذفه ، أضف جزءاً خاصاً بمعالجة إستثناء عدم وجود منتج للحذف .

-- نفذ الروتين المكتوب في الفرع أعلاه ، ثم استدع الروتين مع إعطائه مدخلات معينة ، ومن ثم استفسر عن جدول المنتجات PRODUCT لملاحظة النتائج .
قم بمناداة الروتين مع تزويده برقم منتج غير موجود في الجدول.

بتاريخ:

تكرم عينك أخي المنار ...
الإجراء التالي يقوم بتحديث اسم صنف بالاعتماد على رقمه إن كان هذا الرقم موجود أصلا.. وفي حال عدم وجود هذا الرقم يقوم بإدخال هذا الرقم واسمه بسطر جديد ..
بس أنا عملتلك إجراء الـ UPDATE وتركتلك مهمة الـ DELETE يعني من المفروض أنك تكون قادر على إنشاؤه لأنه على نفس مبدأ
الـ UPDATE ... وعم أنتظر منك شوف إجراء الحذف كيف كتبته ... OK

CREATE OR REPLACE PROCEDURE UPD_PROD(OLD_NUM IN PRODUCT.PRO_NUM%TYPE,
NEW_NAME IN PRODUCT.PRO_NAME%TYPE)
IS
BEGIN
UPDATE PRODUCT
SET PRO_NAME = NEW_NAME
WHERE PRO_NUM = OLD_NUM;
IF SQL%NOTFOUND THEN
INSERT INTO PRODUCT(PRO_NUM,PRO_NAME)
VALUES(OLD_NUM,NEW_NAME);
END IF;
END;

الآن بإمكانك التشييك وتنفيذه :
--FOR EXECUTE EXAMPLE :
--EXECUTE UPD_PROD(NUMBER,'THE NAME')

''عم أنتظر منك PROCEDUR DEL_PROD

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

أخي الكريم هنالك نقطة لم تضعها وهي (( أضف جزءاً خاصاً بمعالجة إستثناء عدم وجود منتج للتعديل ))

يعني إذا أضفت رقم غير موجود تظهر لي رسالة تخبرني بذلك

أرجو أنك تضع هذه النقطة

وسوف أقوم بوضع الحل الخاص بالحذف لكي تراه

وشكرا

بتاريخ:

الأخ الكريم :
إذ كنت تعمل في بيئة SQL*PLUS
أولا نفذ :
SET SERVEROUTPUT ON;
ثم إليك الكود التالي :
CREATE OR REPLACE PROCEDURE UPD_PROD(OLD_NUM IN PRODUCT.PRO_NUM%TYPE,
NEW_NAME IN PRODUCT.PRO_NAME%TYPE)
IS
BEGIN
UPDATE PRODUCT
SET PRO_NAME = NEW_NAME
WHERE PRO_NUM = OLD_NUM;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('لايوجد صنف له هذا الرقم ... تم إضافة صنف جديد ');
INSERT INTO PRODUCT(PRO_NUM,PRO_NAME)
VALUES(OLD_NUM,NEW_NAME);
--THEN IF YOU DONT WANT INSERT YOU CAN DELETE INSERT STATMENT AND UPDATE THE MESSAGE
END IF;
END;

أما إذا كنت تريد استعمال هذا الإجراء في الفورم
فإليك الكود التالي :
CREATE OR REPLACE PROCEDURE UPD_PROD(OLD_NUM IN PRODUCT.PRO_NUM%TYPE,
NEW_NAME IN PRODUCT.PRO_NAME%TYPE)
IS
MSG NUMBER;
BEGIN
UPDATE PRODUCT
SET PRO_NAME = NEW_NAME
WHERE PRO_NUM = OLD_NUM;
IF SQL%NOTFOUND THEN
SET_ALERT_PROPERTY('ALERT_NAME',ALERT_MESSAGE_TEXT,'لايوجد صنف بهذا الرقم ... هل تريد إضافة صنف جديد له هذا الرقم');
MSG := SHOW_ALERT('ALERT_NAME');
IF MSG = ALERT_BUTTON1 THEN
INSERT INTO PRODUCT(PRO_NUM,PRO_NAME)
VALUES(OLD_NUM,NEW_NAME);
ELSIF MSG = ALERT_BUTTON2 THEN
NULL;
END IF;
END IF;
END;

طبعا بهذه الحالة عليك إنشاء ALERT تسميها الاسم المطلوب
وبالنسبة لعملية INSERT في حال عدم وجود صنف فهي راجعة لك بإمكانك إضافتها أو حذفها ..

بتاريخ:

طبعا لاتنسى
COMMIT;
للتثبيت

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

مشكووووووووووووووووووووووور

وهذا البرنامج حق الحذف

ها عدل ولا لا ؟

SQL > CREATE OR REPLACE PROCEDURE DEL_PROD
(OLD_NUM IN PRODUCT.PROD_NUM%TYPE,
NEW_NAME IN PRODUCT.PROD_NAME%TYPE)
IS
BEGIN
DELETE FROM PRODUCT
WHERE PROD_NUM=OLD_NUM;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE(' لايوجد صنف له هذا الرقم ')
COMMIT;
END IF;
END DEL_PROD;
/

SQL > EXECUTE DEL_PROD(NUMBER,'THE NAME');

بتاريخ:

 

:lol: عدل :lol:

 

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

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

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

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

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

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.