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

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

صورة
- - - - -

متغيرات من نوع كائن


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

#1 MMA

MMA

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

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

تاريخ المشاركة 19 September 2006 - 03:13 PM

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

أصدقائي أعضاء المنتدي الكرام /
كل عام وأنتم بخير بمناسبة حلول شهر رمضان الكريم

في الحقيقة أنا عندي مشكلة قد طرحتها في هذا المنتدي من قبل ولم أحد
يستجيب لي ، حيث إنها المشاركة الثانية بالنسبة لي :


السؤال هو ؟

كيف يتم تعريف متغير داخل PL/SQL أو Parameter من نوع كائن Object ،
أنظر الكود التالي:
-----------------------------------------------
Create Or Replace Function XX(A Table)
As
X VarChar2(20);
Y Table;
R View;
Begin

End;
-----------------------------------------------
هل يمكـن جعل متغير مثل Y من نوع جدول ، أو متغير مثل R من نوع عارض
أو ------ الي آخرة داخل أوراكل ، فالكود مستنتج من SQL-Server وغير
صحيح.

فإذا كانت الإجابة بنعم ، ما هي الطريقة

مع العلم أنني قد سمعت أن SQL-Server له القدرة علي هذا الأمر

========== مع الشكر

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

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

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#2 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 20 September 2006 - 01:11 AM

اليك هذة المشاركة السابقة لعلها تفيدك

من هنا

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#3 MMA

MMA

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

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

تاريخ المشاركة 21 September 2006 - 12:47 PM

أخي Amgad ، تحية طيبة وبعد ،


في الحقيقة أنا تعاملت مع مثل هذا الموضوع ، ولكن سؤالي واضح ، ومن المثال التالي يمكن التوضيح أكثر :
------------------------------------------------------------------------

نفترض أن لدينا جدولين بهما أربعة حقول من نفس النوع ونفس الإسم ، علي النحو التالي
Enumber --> رقم الموظف
Fname --> إسم أول
Mname --> إسم أوسط
Lname --> إسم أخير


Create Or Replace Function Link_Field(TableName Table,ID_Num VarChar2) Return VarChar2
As
Type m_Record As Record
(
ID_Fname VarChar2(20),
ID_Mname VarChar2(20),
ID_Lname VarChar2(30)
);
lenRecord m_Record;
o_Name VarChar2(70);
Begin
Select Fname,Mname,Lname
Into lenRecord
From TableName
Where Enumber = ID_Num;
o_Name := lenRecord.ID_Fname || ' ' || lenRecord.ID_Mname || lenRecord.ID_Lname;

Reruen o_Name;
End XX;
/

إستدعاء البرنامج :

Select LNKF(Emp,Enumber) As Ename From Emp;

Select LNKF(EMP_1,Enumber) As Ename From Emp_1;

-------------------------------------

لاحظ أن هذا الكود غير سليم ، ولكن هو تخيلي لكيفية إقتباس أكثر من جدول داخل Parameters لإحدي الإجراءات أو الأغراض ، وهو أيضاً ما أرغب فية.





وشكراُ علي ردك أخي الكريم

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

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

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#4 MMA

MMA

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

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

تاريخ المشاركة 22 September 2006 - 08:50 PM

هل السؤال صعب

:unsure: :unsure: :unsure: :unsure: :unsure: :unsure: :unsure: :o :o

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

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

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#5 Mbadawy

Mbadawy

    عضو

  • الأعضــاء
  • 7 مشاركة

تاريخ المشاركة 29 October 2006 - 09:52 PM

I did not understand you very will,
but
if you are trying to pass the table name throght a parameter to be used in the from clouse
so you are talking about dinamic sql search DBMS_SQL pacakge
but
if you are trying to pass a tabe data you souhd create an index by parameter.
i hope that helped you.

#6 MuhammadYassein

MuhammadYassein

    عضو نشط

  • الأعضــاء
  • 304 مشاركة
  • الاسم الأول:Muhammad
  • اسم العائلة:Yassein
  • البـلـد: Country Flag
  • الاهتمامات:Oracle
    SOA
    BPM
    ADF
    Java
    Forms
    Reports
    Analysis
  • المنصب الحالي:Senior Oracle SOA BPM Specialist

تاريخ المشاركة 28 December 2006 - 09:44 PM

اخي العزيز ..........
اذا كان قصدك عمل متغير من نوع جدول .......
-----------------------------------------------------------------------------------
V_Emp Emp%RowType ;
الان يمكن استخدام V_Emp بدلاً من استخدام الجدول نفسه
V_Emp.ename
V_Emp.sal
V_Emp.Deptno

اللهم اني احبك ... و احب من يحبك ... و احب كل عمل يقربني الى حبك ... اللهم أني أسألك رضاك و عفوك وجنة الفردوس

 
 
public void myInfo{

String myName    = "محمد ياسين" ;
String myCountry = "مصر ام الدنيا" ;
String MyGod     = "لا اله الا الله"; 
String myProphet = "محمد رسول الله";
String MyBook    ="القرآن العظيم";
String myGoal    ="جنة الفردوس";
boolean stillLife = true;


while(stillLife){
        System.out.println("لا اله الا الله محمد رسول الله");
}

}

 

979213111.jpg

 

 

Contact me now ..

 

 - Facebook - Linkedin - Youtube  - Twitter


#7 MMA

MMA

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

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

تاريخ المشاركة 05 January 2007 - 01:16 PM

أخي الكريم

أشكرك كثيراً علي الرد


بالفعل ، هذا الأمر ( V_Emp Emp%RowType ) سيحل لي الكثير من المشاكل


ولكن أخي الكريم أنظر معي ، المتغير خاص بجدول Emp فقط لا غير ، بمعني أنني سأستخدم هذا المتغير للتعامل مع
الكائن ( Emp ) ، ولكنني أرغب في متغير يمكن تحميل العديد من الكائنات به مثل :
Dep
Emp
Phone
Pro ------- الي آخرة


وأشكرك كثيراً علي هذه المعلومة الجميلة


وآسف علي التأخري للرد عليك

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

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

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#8 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 05 January 2007 - 05:26 PM

اليك هذا المثال لعله يفيدك

set serveroutput on
show errors
declare
vsex char(1):='&sex'; 
type emp_rec is record(eno emp.empno %type,ename emp.ename %type,sex emp.sex %type,
									  salary emp.sal %type,hiredate emp.hiredate %type,yearsofservice number(5,2));
type emp_table is table of emp_rec;
emp_col emp_table:=emp_table();
cursor c_emp is select empno,ename,sex,sal,hiredate,((sysdate-hiredate)/365) 
							from emp where sex=vsex order by sal desc;
cele integer;
m integer;
temp number(5,2):=0;
begin
emp_col.extend(4);
for rec in c_emp loop
emp_col(c_emp %rowcount):=rec;
exit when c_emp %rowcount >=4;
end loop;
cele:=emp_col.first;
for i in 1..emp_col.count loop
 dbms_output.put_line('element ' || cele || ' is number:' || emp_col(cele).eno || ' name:' ||emp_col(cele).ename || 
					  ' sex :' || emp_col(cele).sex || ' salary:' || emp_col(cele).salary || ' hiredate:' || emp_col(cele).hiredate || 
					  ' years of service:' || emp_col(cele).yearsofservice);
 cele:= emp_col.next(cele);
end loop;
cele:=emp_col.first;
for j in 1..emp_col.count loop
if temp < emp_col(cele).yearsofservice then
m:=cele;
temp:=emp_col(cele).yearsofservice;
end if;
 cele:= emp_col.next(cele);
end loop;
cele:=m;
emp_col.delete(cele);
cele:=emp_col.first;
for i in 1..emp_col.count loop
 dbms_output.put_line('element ' || cele || ' is number:' || emp_col(cele).eno || ' name:' ||emp_col(cele).ename || 
					   ' sex :' || emp_col(cele).sex || ' salary:' || emp_col(cele).salary || ' hiredate:' || emp_col(cele).hiredate ||
					   ' years of service:' || emp_col(cele).yearsofservice);
 cele:= emp_col.next(cele);
end loop;
end;

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....