إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ما هي انواع ال buffer


1 رد (ردود) على هذا الموضوع

#1 alhomam

alhomam

    عضو نشط

  • الأعضــاء
  • 321 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 March 2005 - 05:02 PM

هناك يوجد انواع لل buffer في pl/sql ومنها new و old
فهل يستطيع احد ان يشرحها لنا وان يعرفنا ببقية الانواع
وشكرا للجميع مشاركين ومشاهدين

#2 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,557 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 15 March 2005 - 12:25 AM

السلام عليكم ،
اليك المثال التالى لكيفية استخدام البيانات قبل التعديل بالجدول من خلال جدول الold وايضا البيانات بعد التعديل من جدول new

أفضل استخدام DB trigger على الجدول .. اليكم مثال على جدول emp فى scott
[align=left]
--انشاء جدول جديد لمتابعة اي تعديلات بالزيادة تتم على الراتب بجدول الموظفين
-- rewno = primary key from sequence.
-- eno = employee number
-- osalary = old salary before update
-- nsalary = new salary after update
-- remark = any comments .. calculate percentage of incresed
-- edate = entery date = system date of transaction.
-- operator = user number as connect to database .
-- تاريخ تسجيل الحركة سيكون مباشرة من الجهاز
-- المستخدم الذى اتم التعديل سيتم كتابته بالملف الجديد
-- مطلوب مسلسل من الجهاز باستخدام - sequenace
-- سيتم الكتابه بالملف فى حالة زيادة الراتب فقط
-- لا يمكن زيادة الراتب بنسبة اكبر من 15 فى المائة
-- يمكن التطوير للتعامل مع الحالات الاخرى
-- event = insert - update - delete
-- time = before - after
--------------------------------------------------
create table updatesalary (
rowno number(5) primary key,
eno number(4),
osalary number(7,2),
nsalary number(7,2),
remark varchar2(100),
edate date default sysdate,
operator varchar2(40) default user);

drop sequence seq_rowed;

create sequence seq_rowed
increment by 1
start with 100 ;
-----------------------------------------------------------
create or replace trigger trg_salary_update
before update of sal on emp
for each row
when (old.sal < new.sal)
declare
vremark varchar2(100);
begin if not (( (( :new.sal - :old.sal ) / :old.sal) * 100 ) < 15 ) then
raise_application_error ( -20001 , 'salary increased more than 15%');
end if ;
vremark := 'for example = Salary is increased ... N % ';
insert into updatesalary (rowno ,eno ,osalary ,nsalary ,remark )
values (seq_rowed.nextval,:old.empno,:old.sal,:new.sal,vremark);
end ;
------------------------------------
update emp
set sal = sal * 1.1
where empno = 7369[/align
];

كيف يمكن اكتشاف تعديل record و تسجيل التعديل.

كيف أغير قيمة في جدول بعد عمل update لآخر.

تم التعديل بواسطة Amgad, 15 March 2005 - 12:31 AM.

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....