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

عندي مشكلة في Trigger

Featured Replies

بتاريخ:

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

طبعا انا كنت ابرمج بلغة فيجوال بيسك 6 وبعدها فيجوال بيسك دوت نت بس من تجربتي بالاعمال والسوق لقيت ان الاوراكل مهمة ومطلوبة اكثر من قبل الشركات والوظائف اكثرها لاصحاب الاوراكل

طبعا موقعي هو :::::::::::::::: جدة - السعودية

بديت اتعلم الاوراكل من فترة لحالي - سلف ستادي << يقاله يعرف انجليزي

<< الرجال بيقص قصة حياته ؟

المهم اخواني اخواتي ماطول عليكم بدخل بالموضوع

تعلمت SQL ومشيت فيها بسرعة ودخلت في PL/SQL ومشيت فيها بعد تمام بس واجهتني مشكلة وانا ادرس الـــ Trigger

طبعا البرنامج التالي كتبته على SQL*PLUS وهو كالتالي

============== الكود ==============

CREATE OR REPLACE TRIGGER check_sal
AFTER INSERT OR UPDATE OF sal, job ON emp
FOR EACH ROW
WHEN (new.sal !='PRESIDENT')
DECLARE
  v_minsal check_sal_emp.minsal%type;
  v_maxsal check_sal_emp.maxsal%type;
BEGIN SELECT MINSAL, MAXSAL
  INTO v_minsal,v_maxsal FROM check_sal_emp
  WHERE JOB = :new.job;
  IF (:new.sal < :old.sal) then
     RAISE_APPLICATION_ERROR(-20230,'SALARY HAS BEEN DECREASED');
  ELSIF (:new.sal < v_minsal or :new.sal > v_maxsal) then
     RAISE_APPLICATION_ERROR(-20225,'SALARY OUT OF RANGE');
  ELSIF (:new.sal > :old.sal * 1.1) then
     RAISE_APPLICATION_ERROR(-20235,'SALARY INCREASED MORE THEN 10%');
  END IF;
END;

=================== تم انشاء الـ Trigger بنجاح ===============

الان المشكلة عندما اقوم بتعدل الراتب في الجدول emp

===============  تعديل الراتب sal  في الجدول  emp ==============

UPDATE emp
SET sal = 500
;

طبعا جربت بطريقة ثانية


UPDATE emp
SET sal = 500
WHERE empno = 7499
;

====================  

يطلع لي خطأ يقول 

ERROR at line 1 :
ORA-01722 : invalid number
===================


حاولت فيه مادري ليش يطلع الخطأ ومادري وش غلطي

ارجو من الخبراء مساعدتي في حل المشكلة وماهي غلطتي في البرنامج هذا ؟

مع فائق الشكر === للعلم هذي اول مشاركة لي واول موضوع :rolleyes:

اخوكم مستحيل

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

اي والله كيف غابت عني هذي

sal نوع رقمي مو حرفي

يعطيك الف عافية استاذي امجد

ان شاء الله ما وقع بالخطأ هذا مرة ثانية :rolleyes:

بس الحين خلاص عرفت invalid number يعني عدم تطابق الـ data type


مستحيل انسى غلاك

بتاريخ:

mmken teb3atly el script bta3 el tabel dah
check_sal_emp
3shan a3raf asa3dak

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

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

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

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

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

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.