الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

توجد هنا جريحه من sequence

مغلق
بدأه رواء في 5 نوفمبر 2002 · 8 رد · 3,665 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

:o

صباح الخير .. ممكن شرح هذه الاسئله ..؟؟

عندما انشئ sequence ابقي تفهمني علي الاتي وماهي عملها لاني بصراحه تعبت وانا احاول فهمها ؟؟

1- cycle / nocycle

2 - cache n / no cache

تبقون الصراحه اصلا سيكونس ما اعرفها ولا اعلاف فايدتها في اوراكل حطوها علشان يعقدوني فيها .

رجاااااااااء خاص شرح مفصل عن NEXTVAL و CURRVAL

وشو معني Pseudocolumns

بليييييييييييييز

اختكم رواء

#2

تحياتي للجميع

اولا الSEQUENCE هي عبار عن OBJECT يتم بنائه في قاعدة البيانات لبناء التسلسلات يعني لو فرضنا عندك جدول كل سجل فيه عند الاضافه يجب ان ياخذ رقم متسلسل

غير عن الذي قبله يعني مثلا يكون مفتاح رئيسي ...

نستعمل الSEQUENCE لمثل هذه الامور لانه مستحيل يجب قيمتين متشابهتين ... مما يؤدي الى ان يكون الرقم UNIQU اي وحيد لا يوجد له شبيه بالجدول....

ويجب ان يكون له قيمه للبدايه (ولا يشترط قيمه للنهايه)

مثلا يبدأ من 1 ..... وينتهي الى 999

اما عن الاسئله اللي سألتي عنها وهي :

NOCYCLE وتعني ان العداد او الSEQUENCE لا يجب ان يعود من البداية في حالة انه وصل للقيمه العليا لو فرضنا بالمثال السابق ان العداد وصل لغاية 999 لا يصفر من جديد.

CYCLE وهي عكسها يعني اعادة التصفير.

CACH يعني يحتفظ بمعدل 20 قيمه الى الامام في الذاكره دائما وليس كل ما تستدعيه هذا الSEQUENCE يحسب من جديد الى اين وصل بل كل مره يضيف 20 ويحتفظ فيهم بالذاكره

يعني لو فرضنا ان الان العداد واصل ل30 تجد انه محتفظ لغاية 50 بالارقام التاليه دون اعادة احتساب بالذاكره.

NOCACH توقفها......

NEXTVAL وهي القيمه التاليه للقيمه CUURVAL لو فرضنا ان CURRVAL = 10 اذن NEXTVAL=11 ....

اما السؤال الاخير ما فهمت معناه

هذا شرح مفصل عن كل سؤال ارجو ان تكوني قد استفدتي

وارجو من الشباب الاخرين اذا وجدوا اي خطأ ان ينبهونا ...(جل من لا يسهو)

وشكرا

;)

#3

النبع شرح وما قصر

أما بالنسبة ل pseudocolumns

فحسب ما أفهم هو أن ذلك الحقل حقل وهمي غير موجود في أي جدول أي غير محسوس مثل طلب التاريخ فلو بحثت عن التاريخ في أي مكان في القاعدة فلن يكون له حقل نهائيا.

هذا ما افمهمة من تلك التسمية

بالمناسبة عادة يكتب pseudo-column

#4

السلام عليكم

سبقني الاخوة في شرح المراد من ال sequance

و لكن اريد ان اضيف اضافة بسيطة بالنسبة للحقل الوهمي الذي تكلم عنه اخي فهذا الحقل نستفيد منه في انشاء جملة select into مثلا و نختار ان القيمة الحالية = maxval + 1 مثلا و ذلك لزيادة المعدل بواحد

ارجو ان تسهم اضافتي هذه و لو بقليل

#5

(f)

اخي النبع ... اوراكل و فويرست مان ما قصرتم تري مانستغني عنكم

اخي النبع جزيل الشكر : وفيت وكفيت

هذه الكلمه شو معناها بالعربي او شو يقصدو بها Pseudocolumns

موجوده في الكتاب

(f) (f)

#6

السلام عليكم

عدت الى هذا الموضوع لاني وجدته مهم بالنسبة لي في برنامج اعده و لذلك وودت ان اجد رد على سؤالي وهو

اولا ممكن حد يضع مثال على انشاء sequance ؟!

ثانيا اخي النبع و باقي الاخوة في حالة انني اريد ال sequance الخاص بي يحتوي على خاصية cycle !! كيف انشاءها في النتسلسلة ؟!

ارجو الرد و جازاكم الله الخير

#7

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

insert into emp_ref values (emp_seq_no.nextval,emp_name)

اما إذا اردت ان تعرف القيمة الحالية للمتسلسلة، فقم بكتابة الكود

select emp_seq_no.currval

اما فيما يخص طريقة انشاء المتسلسة، فهي كالتالي:

CREATE SEQUENCE <SEQUENCE_NAME> 

     INCREMENT BY <value> START WITH <value>    

     MAXVALUE <value> MINVALUE <value> 

     CYCLE CACHE 20 NOORDER

ولك المثال الآتي

CREATE SEQUENCE my_seq INCREMENT BY 1 START WITH 1 

    MAXVALUE 10000000 MINVALUE 1 CYCLE 

    CACHE 20 NOORDER
#8

اخي السني

و الله ما قصرت كعادتك في الاستجابة السريعة

جازاك الله كل خير :D

#9

السلام عليكم

هناك مشكلة مازالت تواجهني و انا استخدم ال sequences و هي

انني حددت في اثناء انشاء ال sequence انه

NOCACHE و لكن هناك مشكلة اراها ان المتسلسل ياخذ ايضا من الذاكرة في حالة اذا ما الغيت احد الارقام من الجدول

بمعنى اني قمت بعمل delete لجميع الارقام الموجودة في جدول معين و حين قمت باخال ارقام من جديد من المفروض ان المسلسل يكون ( 1 ) و لكن الذي اجده ان المسلسل يبدأ من اخر رقم انتهى اليه المسلسل السابق قبل ان اقوم بالغاء الاقام

ماذا افعل :'(

هذا الموضوع مغلق.

مواضيع مشابهة