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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

مشكلة في الـ Object Type


2 رد (ردود) على هذا الموضوع

#1 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 04 April 2008 - 03:37 PM

الإخوة الكرام ، السلام عليكم ورحمة الله وبركاتة ،

من المعتاد عند إنشاء أمر Object Type بقاعدة البيانات تتم كما يلي :

Create Or Replace Type O_Emp Is Object(EmpNo  Number(10),Ename VarChar2(20));
/
Create Or Replace Type T_Emp Is Table Of O_Emp;
/

بعد ذلك يمكننا إستخدامهم بكل بساطة كما يلي :

Declare
  P_Emp  T_Emp := T_Emp();
Begin
  P_Emp.ExtEnd;
  P_Emp(P_Emp.Count) := O_Emp(1,'Ahmed');
  P_Emp.ExtEnd;
  P_Emp(P_Emp.Count) := O_Emp(2,'Usif');
  P_Emp.ExtEnd;
  P_Emp(P_Emp.Count) := O_Emp(3,'Sara');
End;
/

ولكن عند محاولة ربط Object Type مباشرتاً مع جدول بأكثر من طريقة لا يقبل معي ، أنظروا :

Create Or Replace Type O_Emp Is RefCursor Return Emp%RowType;
/
Create Or Replace Type O_Emp Is Ref Cursor Return Emp%RowType;
/
Create Or Replace Type O_Emp Is Object Of Emp%RowType;
/
Create Or Replace Type O_Emp Is Object Return Emp%RowType;
/
Create Or Replace Type O_Emp Is Record(A  VarChar2(20));
/

من الصحيح إمكاننا إنشاء أمر Type داخل قطعة برمجية كما يلي :

Declare
  Type O_Emp Is Ref Cursor;
  P_Emp  O_Emp;
Begin
  Open P_Emp For Select * From Emp;
  Null;
End;
/


لكن إخواني أنا أرغب في إنشاء Object Type مباشرتاً ، يمكننا من خلالة جلب كافة حقول جدول محدد علي Object Type دون إجراء تعريف له ، كما هو موضح بالمثال التالي :

P_Emp	Emp%RowType;


شكراً

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#2 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 07 April 2008 - 11:53 AM

هل هناك حل

شكراً

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#3 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 09 February 2009 - 05:58 PM

لجلب الحقل كله

declare
P_Emp Emp%RowType;
begin select * into p_emp from emp ;
end;

تم التعديل بواسطة asd202, 09 February 2009 - 05:59 PM.

begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;