قمت بعمل اجراء مخزن يقوم بصرف ارقام تسلسليه بناءا على تاريخ السنه :
Create Or Replace Function THEID(ID_Year in number) Return Number is IDis Number :=0; Begin Select nvl(max(id),0) +1 into IDis from id Where IDDATE = ID_Year; if IDis = 1 then insert into ID Values(IDis,ID_Year); else Update ID Set id = IDis Where IDDATE = ID_Year; end if; Commit; return (IDis); end THEID;
ولكن استخدامه بالشكل التالي :
insert into Mam Values(THEID(1423),'ibrhim','Rihad');
يظهر هذا الــ Error
insert into Mam Values(THEID(1423),'ibrhim','Rihad') * ERROR at line 1: ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML ORA-06512: at "STOCK1.THEID", line 13
طيب اذا كان الوضع هكذا كيف يتم تثبيت التعديل او التغيير بالنسبه للاجراءا اعلاه .. او ان التعامل مع الاجراءات يتم تثبيتها مباشرتا وقت التنفيذ .
