بتاريخ: 22 مارس 200718 سنة comment_94682 إخواني الكرام ، تحية طيبة وبعد ،لدي سؤالين أتمني الإجابة عليهما :السؤال الأول :أتعامل مع SQL-Server ، وبداخلة يمكن إنشاء Function يقوم بإرجاء جدول ، مثال : Create Function ListEmp(@ID_Dep BigInt) Returns TabelAs Return Select * From Emp Where Dep_No = @ID_Dep ويمكن إستخدامة كما يلي : Select * From dbo.XX(1) هل هناك طريقة يمكن إنشاء نفس الإمكانيات من داخل أورال.السؤال الثاني :هناك أيضاً طريقة قد أعجبتني داخل SQL-Server وهي إنشاء جمله إدراج سجل داخل علامتي تنصيص وفي نهاية الإجراء يمكن تنفيذ الأمر كما يلي : Sql = 'Insert Into Emp Values(1,Mostapha)' Execute SP_ExecuteSQL Sql هل هناك مثل هذة الإمكانية داخل أوراكلوشكراً تقديم بلاغ
بتاريخ: 8 يوليو 200718 سنة كاتب الموضوع comment_104404 إخواني الكرام ، بقالي فترة طويلة ولم أحد يستجيب إلي ، فأعتقد أن ليس هناك أحد يعلم حل هذه المشكلة . وبفضل الله عز وجل ، عرضت الموضوع في منتدي الفريق العربي للبرمجيات قسم أوراكل ، وأخيراً وجدت الحل ، وسأرفقة حتي يستفيد منه أي شخص في المنتدي لم يعرفة :1- جدول البيانات : Create Table Emp ( Emp_ID Number(10), Emp_Code VarChar2(20), Emp_Name VarChar2(50), Constraint PK_EMP Primary Key(Emp_ID) ) / 2- بناء الحزمة والإجراء : Create Or Replace Package PKG_REF As Type Cur_Emp Is Ref Cursor; Procedure List_Emp(i_Start In Number,i_End In Number, o_Emp Out Cur_Emp); End; / --***************************************-- Create Or Replace Package Body PKG_REF As Procedure List_Emp(i_Start In Number, i_End In Number, o_Emp Out Cur_Emp) Is Begin Open o_Emp For Select Emp_ID,Emp_Code,Emp_Name From Emp Where Emp_ID Between i_Start And i_End; End; End; / 3- إستخدام الإجراء : -- Declare the variables; Var I_Start Number; Var I_End Number; Var o_Emp RefCursor; -- Input the data. Begin :I_Start := 10; :I_End := 50; End; -- Output Records -- SQL> Call Pkg_Ref . List_Emp(:I_Start,:I_End,_EMP); وشكراً تقديم بلاغ
بتاريخ: 12 يوليو 200718 سنة كاتب الموضوع comment_104714 إخواني الكرام ، تحية طيبة وبعد ، أنا قمت بلإجراء إرتجاع بيانات من نوع Ref علي إجراء Procedure ولكن حتي الآن لم أنجح في إرتجاع Ref علي غرض ، بحيث أن يكون بالشكل التالي :Select * From List_Emp(1,5)حيث أن List_Emp هو Function .رجاء مساعدتكموشكراً تقديم بلاغ
بتاريخ: 13 يوليو 200718 سنة كاتب الموضوع comment_104763 إخواني الكرام ، هل سؤالي صعب لهذه الدرجة !!!!!!!!!!!!!!!! تقديم بلاغ
بتاريخ: 15 يوليو 200718 سنة كاتب الموضوع comment_104842 إخواني الكرام ، تحية طيبة وبعد ،أخيراً وجدت الحل ، وسأرفقه لكم بمثال بسيط وتوضيحي ، وإذا وجدت حل أبسط من ذلكسأرفقة لكم كي يستفاد منها الجميع .ولكن لي سؤال بسيط ، أري أن ليس أحد يستجيب إلي بأي جملة ؟ هل لأن موضوعي صعبأم تافه لدرجة أن لم أحد يستجيب إلي ؟ أم أن هذا الأمر طبيعي ؟إخواني ، أنا لم أحتاج سوي مساعدتكم ، وإذا كان هذا الموضوع قد إستفاد منها الكثر ، فلمأحتاج سوي دعائكم لي ؟ ولكن هذا شيء يحيرني ، منذ بداية كتابتي للموضوع ، وأحب أن أوضح لكم بأنني إذا وجدتمشاركة لست أعلم عنها شيء ، فلم أرد أي رد ، كي أترك مساحة للغير .وشكراالمثال :---------------------------------------------------------------------------------------------------------------- جدول البيانات --Create Table Employee( Emp_ID Number(10), Emp_Code VarChar2(10), Emp_Name VarChar2(25), Constraint PK_Employee Primary Key(Emp_ID))/Insert Into Employee Values(1,'001','Ahmed','M',1100)/Insert Into Employee Values(2,'002','Mostapha','M',1250)/Insert Into Employee Values(3,'003','Usif','M',1400)/Insert Into Employee Values(4,'004','Sara','F',1000)/Insert Into Employee Values(5,'005','Tahany','F',1020)/Insert Into Employee Values(6,'006','Dalya','F',1130)/Insert Into Employee Values(7,'007','Mahmod','M',1290)/Insert Into Employee Values(8,'008','Farag','M',1800)/Commit/-- بناء كائنات ومصفوفات --Create Or Replace Type T_EMP Is Object(Emp_ID Number(10), Emp_Code VarChar2(10),Emp_Name VarChar2(20), Emp_Sex VarChar2(8),Emp_Salary VarChar2(10))/Create Or Replace Type T_EMP_Table Is Table Of T_Emp/-- إنشاء غرض يقوم بإرجاع جدول --Create Or Replace Function L_Emp Return T_EMP_TableAs Cursor CUR_EMP Is Select Emp_ID,Emp_Code,Emp_Name, (Case When Emp_Sex='M' Then 'Male' Else 'Feminize' End) As Emp_Sex,To_Char(Emp_Salary,'9990.00') As Emp_Salary From Employee Order By Emp_ID; ID_Serial Number(10); ID_Code VarChar2(20); ID_Name VarChar2(30); ID_Sex VarChar2(8); ID_Salary VarChar2(10); P_EMP T_EMP_Table;Begin P_EMP := T_EMP_Table(); Open Cur_Emp; Fetch CUR_EMP Into ID_Serial,ID_Code,ID_Name,ID_Sex,ID_Salary; While CUR_EMP%Found Loop P_EMP.Extend; P_EMP(P_EMP.Count) := T_Emp(ID_Serial,ID_Code,ID_Name,ID_Sex,ID_Salary); Fetch CUR_EMP Into ID_Serial,ID_Code,ID_Name,ID_Sex,ID_Salary; End Loop; Return P_EMP;End;/Select * From Table(L_Emp)/آسف علي عدم التنسيق ، لكن بصراحة مشعارف شاشة ( إضافة رد ) ، كان بها مشكلة غير معروفة تقديم بلاغ
بتاريخ: 6 أغسطس 200718 سنة comment_106678 السلام عليكم و رحمة الله و بركاتة اولا جزاك الله خيرا علي هذا الموضوع الشيق لماذا وضعت عبارة Fetch مرتين . ؟ تقديم بلاغ
بتاريخ: 6 أغسطس 200718 سنة comment_106679 السلام عليكم و رحمة الله و بركاتة اولا جزاك الله خيرا علي هذا الموضوع الشيق لماذا وضعت عبارة Fetch مرتين . ؟ تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.