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

Update


sadlover

Recommended Posts

السلام عليكم
ارجو مساعدتي في عمل كود
اريد عمل كود update وعندي 200.000 موظف وعندي 50 وظيفه واريد عمل كود update حيث يعمل على توزيع الوظائف على الموظفين عشوائي
ولكم جزيل الشكر والاحترام

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

أخي العزيز سؤالك يتكون من جزئين

الجزء الاول عملية توزيع الوظائف بشكل عشوائي
الجزء الثاني عمية التعديل لكي نمنح كل موظف وظيفة.

الجزء الأول :

لكي نقوم بعملية التوزيع العشوائي يجب عمل جدول فيه الوظائف

CREATE TABLE JOBS AS SELECT DISTINCT(JOB)  FROM EMP;



حتى يكون محتوى الجدول بهذا الشكل

CLERK
SALESMAN
PRESIDENT
MANAGER
ANALYST



بعدل عمل الجدول نعمل function تقوم بتوزيع الوظائف بشكل عشوائي

create or replace function get_job return char
 is
 emp_job varchar2(9);
 begin
 select job into emp_job from (select job from jobs order by dbms_random.random)
 where rownum=1;
 return(emp_job);
 end get_job;



سوف ترى الفائدة منها لاحقا(في procedure في الجزء الثاني ).

الجزء الثاني :

لكي نقوم بعملية التعديل كما ذكرت انت يجب عمل جدول يحوي الموظفين و الوظائف

create table employes(
empl_name varchar2(10),
emp_job   varchar2(9));



بعد عمل الجدول نملئ الجدول بسجلات الموظفين

insert into employes(select ename,'' from emp);



بعد ملئ السجلات نعمل update للجدول ولاكن بأستخدام procedure مع دمج function السابقة :

create or replace procedure emp_job
  is
  cursor c1 is select emp_name
  from employes;
  newr c1%rowtype;
 begin
 open c1;
 loop
 fetch c1 into newr;
 exit when c1%notfound;
 update employes
 set job=get_job;
 where emp_name=newr.emp_name;
 end loop;
 commit;
 close c1;


 end;




و الان يصبح الناتج هكذا :

EMP_NAME   JOB
---------- ---------
SMITH	  CLERK
ALLEN	  ANALYST
WARD	   SALESMAN
JONES	  MANAGER
MARTIN	 MANAGER
BLAKE	  ANALYST
CLARK	  PRESIDENT
SCOTT	  PRESIDENT
KING	   PRESIDENT
TURNER	 CLERK
ADAMS	  ANALYST

EMP_NAME   JOB
---------- ---------
JAMES	  SALESMAN
FORD	   SALESMAN
MILLER	 CLERK




ملاحظ قد يختلف الناتج عندك لأن عملية التوزيع عملية عشوائية ............ تحياتي

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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