بتاريخ: 21 يونيو 201312 سنة comment_237737 السلام عليكم و رحمة الله وبركاتة بسم الله نبدا .. اعتقد الدرس دة حيكون سهل قوى على البشمبرمجين اللى شغالين فى مجال الجافا ... يلا نبدا و نشوف حنتكلم النهاردة باذن الله تعالى على نوع جديد من DataType الموجودة فى اوراكل و اعتقد مش ناس كتير تعرفها علشان هى مش موجودة فى كورس اوراكل و ياريت اى حد يعرف عن DataType يضيف اى حاجة على موضوعى لكى نستفيد باذن الله . حنقدر نستفيد اية من هذا النوع ؟؟! طيب اية رايك خلينا نشوف حنستفاد اية بس و احنا بنتكلم تحت باذن الله . بس خلينا نتفقد الاول و نقول انا Object Type دة بيتكون من attribute و Method زى ما اى حد درس OOP فى اى لغة برمجة . attribute دى بتساوى عندنا colmun و Method دى هى functions and Procedures الاولي دى المتغيرات اللى بتاخد القيم و الثانية دى العمليات اللى حتحصل و دة شرح مبسط جدا علشان انا مش عامل موضوع لشرح مفهوم OOP انا داخل على طول على Object Type لو حد مش قادر يستوعب الفرق بين attribute or Method ياريت يشوف اى مقالة للمبدعين فى المنتدى عن OOP . Syntax CREATE OR REPLACE TYPE < Object Type Name > AS OBJECT ( < Attribute Name > < Attribute DataType > ); طبعا حنزود حاجات على Syntax كل شوية CREATE OR REPLACE TYPE DEMASY.employee_object AS OBJECT ( SEQ NUMBER, EMP_NUMBER NUMBER, FIRST_NAME VARCHAR2 (30 BYTE), LAST_NAME VARCHAR2 (30 BYTE), EMAIL VARCHAR2 (50 BYTE), BIRTHDAY DATE, START_DAT DATE, END_DATE DATE, JOB VARCHAR2 (100 BYTE), DEPT VARCHAR2 (100 BYTE), SALARY NUMBER (7, 2), BONUS NUMBER (7, 2), DESCRIPTION VARCHAR2 (1000 BYTE) ); كدة خلص انا عملت Object type و زى ما انت شايف هو زى الجدول بالظبط هو Object بيشيل بيانات الموظفين و فية attributes عن رقم الموظف و اسمة و ايميله و بيانات اخرى . طيب اقدر استخدمة ازاى تعال شوية معانا الكود الجاى دة DECLARE x_emp employee_object; BEGIN x_emp := employee_object (1, 1001, 'Ahmed', 'El-Demasy', '[email protected]', TO_DATE ('13111986', 'DDMMRRRR'), SYSDATE, SYSDATE, 'Oracle Application Technical Consultant', 'Oracle E-Business Suite', 1000, 150, 'www.ahmedeldemasy.com'); DBMS_OUTPUT.put_line ( 'Employee Name : ' || x_emp.FIRST_NAME || ' ' || x_emp.last_NAME); END; Result : Ahmed El-Demasy ملحوظة : انا مقدرش استخدم Object الا لما اعمل منة instance الاول . ثانيا متقدرش assigning قيمة الى attribute زى المثال القادم . DECLARE x_emp employee_object; BEGIN x_emp.first_name := 'Ahmed'; END; ممكن انشاء Object من Object اسمها Nested Object CREATE OR REPLACE TYPE employee_object AS OBJECT ( SEQ NUMBER, EMP_NUMBER NUMBER, FIRST_NAME VARCHAR2 (30 BYTE), LAST_NAME VARCHAR2 (30 BYTE), EMAIL VARCHAR2 (50 BYTE), BIRTHDAY DATE, START_DAT DATE, END_DATE DATE, JOB VARCHAR2 (100 BYTE), DEPT VARCHAR2 (100 BYTE), SALARY NUMBER (7, 2), BONUS NUMBER (7, 2), DESCRIPTION VARCHAR2 (1000 BYTE) ); CREATE OR REPLACE TYPE employee_object2 AS OBJECT ( code NUMBER, emp_details employee_object ); يتابع تقديم بلاغ
بتاريخ: 21 يونيو 201312 سنة كاتب الموضوع comment_237739 علشان تعمل Add او Drop لـــ Attribute Syntax : Add Syntax : ALTER TYPE < Type Name > ADD ATTRIBUTE < New Attribute Name > DATE; Drop Syntax : ALTER TYPE < Type Name > DROP ATTRIBUTE < New Attribute Name >; و الله المستعان تقديم بلاغ
بتاريخ: 21 يونيو 201312 سنة كاتب الموضوع comment_237740 Declare MEMBER function on object type CREATE OR REPLACE TYPE DEMASY.payroll_object AS OBJECT ( tran NUMBER, emp_details employee_object, total_income NUMBER, --- such as Method on Java Lanaguage MEMBER FUNCTION get_tran_Date RETURN DATE, MEMBER PROCEDURE set_total_income ); Body CREATE OR REPLACE TYPE BODY DEMASY.payroll_object AS MEMBER FUNCTION get_tran_Date RETURN DATE IS x_get_tran_Date DATE; BEGIN SELECT SYSDATE INTO x_get_tran_Date FROM DUAL; RETURN (x_get_tran_Date); END get_tran_Date; MEMBER PROCEDURE set_total_income IS BEGIN total_income := (emp_details.SALARY + emp_details.BONUS); END set_total_income; END; تقديم بلاغ
بتاريخ: 22 يونيو 201312 سنة comment_237751 مشاركة وعودة قووويه يا مبدع.. ماشا الله عليك.. مووفق. تقديم بلاغ
بتاريخ: 23 يونيو 201312 سنة كاتب الموضوع comment_237783 تسلم يا هندسة ...لسه حكمل الدرس باذن الله لما القى وقتو الله المستعان تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.