بتاريخ: 25 فبراير 200719 سنة comment_92666 # أولاً : بناء الـObject Types:-إليك المثال الآتي الذي يستعمل جملة CREATE TYPE لبناء Object Type إسمها address_typ والتي تستعمل لتمثيل العنوان (address) تتكون من أربع خواص هي street, city, state,zip . وكما في الشكل الآتــــــي:- CREATE TYPE address_typ AS OBJECT ( street VARCHAR2(15), city VARCHAR2(15), state CHAR(2), zip VARCHAR2(5) ); / والآن دعنا ننظر الى المثال التالي الذي يمثل الشخص(person ) كـObject واسمها person_typ والتي تستعمل الـObject التي اسمها address_typ والتي تم بناء ها في المثال السابق:- CREATE TYPE person_typ AS OBJECT ( id NUMBER, first_name VARCHAR2(10), last_name VARCHAR2(10), dob DATE, phone VARCHAR2(12), address address_typ ); / والآن لكي تتضح الصورة أكثر لنرى هذا المثال المنتج (products) واسمه product_typ مع ملاحظة ان هذه الtype تستخدم فانكشن اسمها get_sall_by_date لتحديد صلاحية المنتج بالاعتماد على المتغير days_valid ، واليك المثال :-\ CREATE TYPE product_typ AS OBJECT ( id NUMBER, name VARCHAR2(15), description VARCHAR2(22), price NUMBER(5, 2), days_valid NUMBER, -- declare the get_sell_by_date() member function, -- get_sell_by_date() returns the date by which the -- product must be sold MEMBER FUNCTION get_sell_by_date RETURN DATE ); / الmember function تستخدم الإعلانget_sell_by_date مع ملاحظة انه يمكن استخدام procdure بدل الfunction باختلاف ان البروسجير لا يرجع قيمة كما في الفانكشن الآن نعمل الbody الخاص بالproduct_typ وهذه الbody سوف تحوي على تعريف الفانكشن get_sell_by_date وهي كما يلي : CREATE TYPE BODY product_typ AS -- define the get_sell_by_date() member function, -- get_sell_by_date() returns the date by which the -- product must be sold MEMBER FUNCTION get_sell_by_date RETURN DATE IS v_sell_by_date DATE; BEGIN -- calculate the sell by date by adding the days_valid attribute -- to the current date (SYSDATE) SELECT days_valid + SYSDATE INTO v_sell_by_date FROM dual; -- return the sell by date RETURN v_sell_by_date; END; END; / كما ترى ان الget_sell_by_date تم حسابها بجمع المتغير days_valid مع التاريخ الحالي (sysdate)في النهاية من الممكن عمل synonym وكما يلي :- CREATE PUBLIC SYNONYM pub_product_typ FOR product_typ; إنتهى الدرس وسوف اكمل الموضوع في المرات اللاحقة تقديم بلاغ
بتاريخ: 25 فبراير 200719 سنة comment_92681 رائع جدا وبدايه موفقه لشرح هذا المبدء الهام في انتظار شرح مفصل و كامل مع تحياتي تقديم بلاغ
بتاريخ: 26 فبراير 200719 سنة كاتب الموضوع comment_92767 تكملة للموضوع السابق:اذا اردت معرفة هيكلية الobject type ما عليك سوى عمل ايعاز describe للobject وكما في الشكل الآتي: DESCRIBE address_typ Name Null? Type ----------------------------------------- -------- ------------ STREET VARCHAR2(15) CITY VARCHAR2(15) STATE CHAR(2) ZIP VARCHAR2(5) وايضاً DESCRIBE person_typ Name Null? Type ----------------------------------------- -------- ------------ ID NUMBER FIRST_NAME VARCHAR2(10) LAST_NAME VARCHAR2(10) DOB DATE PHONE VARCHAR2(12) ADDRESS ADDRESS_TYP وايضاً يمكن وضع عمق للايعاز describe كما في الشكل الاتي : SET DESCRIBE DEPTH 2 DESCRIBE person_typ Name Null? Type ----------------------------------------- -------- ------------ ID NUMBER FIRST_NAME VARCHAR2(10) LAST_NAME VARCHAR2(10) DOB DATE PHONE VARCHAR2(12) ADDRESS ADDRESS_TYP STREET VARCHAR2(15) CITY VARCHAR2(15) STATE CHAR(2) ZIP VARCHAR2( انتهى الدرس اليوم أتوقع انه بسيط ولا تنسونا سوف اكمل الموضوع في المرات اللاحقه. تقديم بلاغ
بتاريخ: 4 مارس 200719 سنة كاتب الموضوع comment_93212 موضوعنا لهذا اليوم هو : كيفية استخدام oject types مع الأعمدة والجدوال في قواعد البيانات:-يمكن استخدام الobject types الأعمدة وتسمى (column object) ومع الجدوال (object table) ، ولكي يتضح الموضوع أكثر اليكم الأمثلة على ذلك :- CREATE TABLE products ( product product_typ, quantity_in_stock NUMBER ); هذا المثال يعمل على بناء جدول اسمه products يحوي على column object اسمه product_typوأيضاً يمكن استخدام الobject types مع الجدوال وكما في المثال الأتي :- CREATE TABLE object_products OF product_typ; CREATE TABLE object_customers OF person_typ; هذان الجدولين (object_products & object_customers) تم بناءهما باستخدام الobject type هذا ما لدي اليوم اتمنى أن اكون قد أوصلت الفكرة ، وسوف نكمل في المرات السابقة . تقديم بلاغ
بتاريخ: 7 مارس 200719 سنة كاتب الموضوع comment_93433 سوف نتطرق اليوم الى كيفية معالجة عمليات DML (الاستعلام ، الاضافة ، التعديل ، الحذف) على جدول معين .أولاً نقوم ببناء جدول جديد لكي نجري عليه عمليات DML وليكن products وسوف يحوي هذا الجدول على column object وكما يلي : CREATE TABLE products ( product product_typ, quantity_in_stock NUMBER ); الproduct_typ تم بناءه سابقاً (شو بلشنا ننسى) 1- الاضافة على جدول الproducts :- INSERT INTO products ( product, quantity_in_stock ) VALUES ( product_typ(1, 'Pasta', '20 oz bag of pasta', 3.95, 10), 50 ); تم أضافة صفين على الجدول وقد تم تمرير البيانات أيضاً الى product_typ2- الأستعلام من جدول الproducts:- SELECT * FROM products; PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID) ------------------------------------------------------------ QUANTITY_IN_STOCK ----------------- PRODUCT_TYP(1, 'Pasta', '20 oz bag of pasta', 3.95, 10) 50 PRODUCT_TYP(2, 'Sardines', '12 oz box of sardines', 2.99, 5) 25 لاحظ هنا يم اظهار الصفين اللذان تم أضافتهما سابقاً ، ويمكن أيضاً الاستعلام فردياً (اي بشرط معين) وذلك باستخدام الalias وكما في الشكل الأتي :- SELECT p.product FROM products p WHERE p.product.id = 1; PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID) ------------------------------------------------------- PRODUCT_TYP(1, 'Pasta', '20 oz bag of pasta', 3.95, 10) أنظر الى المثال التالي بتركيز SELECT p.product.get_sell_by_date() FROM products p; P.PRODUCT --------- 12-OCT-03 07-OCT-03 في هذا المثال تم الاعتماد على object type التي اسمها product_typ والتي تحوي الفانشكن get_sell_by_date() والتي تقوم بارجاع تاريخ صلاحية المنتج .(راجع الموضوع السابق)3- التعديل على جدول الproducts:-عندما تريد أن تعديل على البيانات يجب أستخدام الalias وكما في الشكل الأتي:- UPDATE products p SET p.product.description = '30 oz bag of pasta' WHERE p.product.id = 1; أتوقع أن المثال واضح 4- الحذف من جدول الproducts :وايضاً هنا لكي نحذف يجب وضع alias وكما في الشكل الآتي: DELETE FROM products p WHERE p.product.id = 2; في النهاية أعمل أيعاز rollback حتى تبقى البيانات كما هي ، لاننا سوف نستخدم هذه البيانات في الدروس التالية.أنتهى الدرس متمنياً أن أكون عند حسن الظن وما توفيقي الا بالله تقديم بلاغ
بتاريخ: 9 مايو 200718 سنة comment_99278 مشكور وبارك الله فيك اخويحاولت اطبق بس ظهر لي هذا الخطا ممكن مساعده ORA-00439: feature not enabled: Objects تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.