الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دمج بيانات من اكثر من مستخدم

مغلق
بدأه alaa في 14 أغسطس 2001 · 4 رد · 893 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الأخوة الأعزاء

اريد ان اقرأ بيانات لجدولين مختلفين على اكثر من مستخدم بمعنى دمج بيانات جدولين فى جدول ثالث مع العلم ان كل جدول على مستخدم مختلف

جزاكم الله خيرا

#2

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

الاخ علاء

بالنسبه لسؤالك الخاص بقراءه بيانات من جدولين مختلفين

فهناك عده طرق ومنها :

لعرض بيانات من جدولين

مع ملاحظه : وجود تشابه في اسماء الاعمده في الجدولين .

select empno,ename,emp.dept,dept.deptno,deptno,dname,loc

from emp,dept

;(where (emp.deptno = dept.deptno

لعرض بيانات من جدولين

مع ملاحظه : لا يوجد تشابه في اسماء اعمده الجدولين ولكن هناك يمكن إعتبار وجود علاقه بينهم وهي الراتب .

select empno , ename , sal , grade

from emp , salgrade

;where sal between losal and hisal

- لعرض بيانات من جدول واحد واعتباره جدوليين والربط بينهم :-

select emps.empno , emps.ename , mgr , mgrs.empno , mgrs.ename

from emp emps , emp mgrs

;where emps.mgr = mgrs.empno

كما يمكن عمل view من اكثر من جدول ليعتبر كجدول ثالث وبه بيانات من جدولين :

SQL>create view our_view

as select empno , ename , sal , emp.deptno , dname , loc

from emp , dept

;where emp.deptno = dept.deptno

كما يمكن عمل view من 3 او 4 او ........ اي عدد من الجداول .

ولجعل ال view للقراءه فقط ، اي لايمكن ادخال بيانات منه او حذف بيانات منه فقط للعرض

نضيف الامر التالي عند انشاءه في اخر شي والامر هو

with read only

مثال

SQL>create view view1

as select empno , ename , sal , deptno

from emp

;where deptno = 10 with read only

ارجوا ان اكون قد وفقت في حل سؤالك

عمر باعقيل

المدينه المنوره

#3

بسم الله الرحمن الرحيم

1- يبدو أن سؤالى غير مفهوم فنفترض مثلا عندى جدول T موجود للمستخدمين user1,user2,user3 وأريد أن أخذ البيانات الموجودة فى الجدول من user1,user2 ولأكتبها فى user3

2- لدى ملف للمقارنة بين sql فى الأكسس والآوراكل لمن أراد ولكن كيف أبعثه إليكم ليكون متاح للجميع

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

لا إله إلا إنت سبحانك إنى كنت من الظالمين

#4

أولا لقراءة جدول بيانات خاص بمستخدم معين عن طريق مستخدم آخر، يجب على مدير قاعدة البينات او المستخدم مالك الجدول أن يسمح بذلك عن طريق ال sql*plus وكالاتي

GRANT SELECT ON table_name TO oracle_user

مع تغيير اسم المستخدم وإسم الجدول، كما يمكن تحديد صلاحيات أخرى غير القراءة فقط SELECT. وهنا يجب ان يكون للمستخدم user3 صلاحية قراءة الجدول T المملوك لكل من المستخدمين user1,user2 ثم تشغيل الأمر على مرتين و كالآتي:

insert into T

(select * from user1.t(

;

commit;

insert into T

(select * from user2.t(

commit;

هذا إذا كنت تريد ادخال كل المعلومات الموجودة في كلى الجدولين وبدون تنقيح، وإلا فعليك إستخدام الأمر where، أو دمج العبارتين إذا كان هناك ربط مطلوب بين الجدولين في المستخدمين user1,user2 بأسلوب معين .

أرجو أن أكون فهمت سؤالك بصورة صحيحة، وأن تكون قد فهمت ردي

#5

بعد التحية

أولا يجب على كل من المستخدمين (user1)(user2) ان يعطوا الصلاحيات للمستخدم (user3)كالتالـي :-

grant select on emp to user3;

grant select on dept to user3;

بعد ذلك يستطيع المستخدم الدخول على (tables) مباشرة كالتالي

select *from user1.emp;

select *from user2.dept;

بعد ذلك يمكن للمستخدم(user3) اللذي منح هذه الصلاحيات ان ينشئ جدول كالتـــالي :-

create table T as select e.empno,e.ename,d.deptno,d.loc

from user1.emp e,user2.dept d

where e.deptno=d.deptno;

بالتالي ماتحتاجه هو الصلاحيات و ال (join) للربط بين الجدولين

والله أعـــلم ....

محمدالشنقيطي

هذا الموضوع مغلق.

مواضيع مشابهة