omar-alreyati بتاريخ: 25 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2007 # أولاً : بناء الـ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 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2007 رائع جدا وبدايه موفقه لشرح هذا المبدء الهام في انتظار شرح مفصل و كامل مع تحياتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 26 فبراير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 26 فبراير 2007 تكملة للموضوع السابق:اذا اردت معرفة هيكلية ال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( انتهى الدرس اليوم أتوقع انه بسيط ولا تنسونا سوف اكمل الموضوع في المرات اللاحقه. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 4 مارس 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 4 مارس 2007 موضوعنا لهذا اليوم هو : كيفية استخدام 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 هذا ما لدي اليوم اتمنى أن اكون قد أوصلت الفكرة ، وسوف نكمل في المرات السابقة . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 7 مارس 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 مارس 2007 سوف نتطرق اليوم الى كيفية معالجة عمليات 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 حتى تبقى البيانات كما هي ، لاننا سوف نستخدم هذه البيانات في الدروس التالية.أنتهى الدرس متمنياً أن أكون عند حسن الظن وما توفيقي الا بالله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sky information بتاريخ: 7 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 7 مارس 2007 ممتاز جزاك الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ABUSAMRAH بتاريخ: 9 مايو 2007 تقديم بلاغ مشاركة بتاريخ: 9 مايو 2007 مشكور وبارك الله فيك اخويحاولت اطبق بس ظهر لي هذا الخطا ممكن مساعده ORA-00439: feature not enabled: Objects اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 9 مايو 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 9 مايو 2007 ما هي نسخة الاوراكل التي تطبق عليها اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.