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

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

صورة
- - - - -

هل يوجد مصفوفات في أوراكل


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

#1 أبو الروض

أبو الروض

    عضو نشط

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

تاريخ المشاركة 29 January 2006 - 10:12 AM

السلام عليكم ورحمة الله وبركاته
هل يوجد مصفوفات في أوراكل كما في لغات البرمجة الأخرى
ياريت مع الجواب مثال للفهم

طبعا ممكن يكون في مصفوفات حتى أكيد وهي ال Type
بس مثال عشان الواحد يعرف كيف ستخدمها

#2 jamal_rrkk

jamal_rrkk

    عضو نشط

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

تاريخ المشاركة 14 February 2006 - 11:14 AM

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

الجداول في pl/sql (المصفوفات) : وهي جداول تستخدم لتخزين سلسلة من الأرقام ويتم تعريف متغير من هذا النوع كما يلي
TYPE اسم المتغير IS TABLE OF نوع المتغير INDEX BY BINARY_INTEGER
مثال : هنا في الحلقة الأولي نقوم بضرب العدد i في نفسه (i*i) وتخزينه في المتغير cont برتبة i والحلقة الثانية لطباعة هذا المتغير
declare type v_cont is table of number(5) index by binary_integer ; i number(5); cont v_cont ;
begin for i in 1..10 loop cont(i) := i*i ; end loop ;
for i in 1..10 loop dbms_output.put_line(i||' * '||i||' = '||cont(i) ) ; end loop ; end ;
ملاحظة : حيث يمكن كتابة المعادلة السابقة بحلقة واحدة وتكون نفس النتيجة كما يلي
declare type v_cont is table of number(5) index by binary_integer ; i number(5) ; cont v_cont ;
begin for i in 1..10 loop cont(i) := i*i ; dbms_output.put_line(i||' * '||i||' = '||cont(i) ); end loop; end;
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#3 oracle_itself

oracle_itself

    عضو نشط

  • فريق الإشراف
  • 365 مشاركة
  • الاسم الأول:Wael
  • اسم العائلة:Abdeen
  • البـلـد: Country Flag
  • المنصب الحالي:Manager

تاريخ المشاركة 04 March 2006 - 02:43 PM

سأقوم بشرح بسيط لكيفية عمل Column و Varray
DECLARE
CURSOR course_cur IS
SELECT description
FROM course; TYPE course_type IS TABLE OF course.description%TYPE
INDEX BY BINARY_INTEGER;
course_tab course_type;

v_counter INTEGER := 0;
BEGIN FOR course_rec IN course_cur LOOP
v_counter := v_counter + 1;
course_tab(v_counter):= course_rec.description;
END LOOP;

FOR i IN 1..v_counter LOOP
DBMS_OUTPUT.PUT_LINE('course('||i||'): '||course_tab(i));
END LOOP;
END;
و شطارتك بقى ازاى تعرف تقسم العمود دة و تخلية مجموعة اعمدة ؟؟ ورينا بقى الشطارة يا بطل.

اما المثال الثانى فيقوم بعمل المصفوفة الأفقية ( الأسم المفضل لدى )

DECLARE
CURSOR name_cur IS
SELECT last_name
FROM student WHERE rownum <= 10;

TYPE last_name_type IS VARRAY(10) OF student.
last_name%TYPE;
last_name_varray last_name_type := last_name_type();

v_counter INTEGER := 0;
BEGIN FOR name_rec IN name_cur LOOP
v_counter := v_counter + 1;
last_name_varray.EXTEND;
last_name_varray(v_counter) := name_rec.last_name;
DBMS_OUTPUT.PUT_LINE ('last_name('||v_counter||'): '||
last_name_varray(v_counter));
END LOOP;
END;

و الله اعلم منى و منكم

Oracle ITself

WAEL ABDEEN: Assistant Manager / Data Mgmt. Analyst

profile: linkedin profile

blog: waelabdeen.blogspot.com

facebook: facebook profile

skype: oracle_itself

email: oracle_itself@hotmail.com