وظيفة تسلسل أوراكل Nextval

Wzyft Tslsl Awrakl Nextval



في Oracle ، يشير التسلسل إلى كائن قاعدة بيانات يقوم بإنشاء سلسلة من القيم الرقمية وفقًا لزيادة محددة. تُستخدم التسلسلات بشكل شائع لإنشاء قيم المفاتيح الأساسية الفريدة للسجلات في جدول قاعدة البيانات.

في هذا البرنامج التعليمي ، سوف نتعلم كيفية استخدام وظيفة NEXTVAL عند العمل مع تسلسلات أوراكل.

ملاحظة: لا يغطي هذا البرنامج التعليمي أساسيات تكوين تسلسل أوراكل. ارجع إلى البرنامج التعليمي الخاص بنا حول تسلسلات Oracle لاكتشاف المزيد.







وظيفة Oracle Nextval

تُستخدم الدالة nextval في تسلسل Oracle لجلب القيمة التالية في تسلسل معين.



يمكننا التعبير عن بناء جملة الوظيفة كما هو موضح في مقتطف الشفرة التالي:



تسلسل_اسم

لا تقبل الوظيفة أي وسيطة أو معلمة. ثم تقوم بإرجاع القيمة التالية في التسلسل المحدد.





مثال لتوضيح الوظيفة

دعونا نأخذ في الاعتبار مثالا. نبدأ بتحديد تسلسل أوراكل بسيط كما هو موضح في الكود التالي:

إنشاء تسلسل اختبار
أبدا ب 1
زيادة بواسطة 1 ؛

نستخدم عبارة CREATE SEQUENCE لتهيئة تسلسل أوراكل جديد. ثم نحدد القيمة التي يبدأ بها التسلسل وقيمة الزيادة لكل قيمة جديدة تم إنشاؤها.



في مثالنا ، يبدأ اختبار التسلسل بقيمة 1 ويزيد بمقدار واحد على كل قيمة جديدة. يجب أن يولد هذا سلسلة من القيم الرقمية تبدأ من 1،2،3،4،5 ... إلخ.

استخدام وظيفة Oracle Nextval

يمكننا استخدام دالة القيمة التالية من تسلسل test_sequence للحصول على القيمة التالية ، كما هو موضح في ما يلي:

تحديد test_sequence.nextval من ثنائي ؛

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

إذا استدعت العبارة مرة أخرى ، فيجب أن تُرجع القيمة التالية في السلسلة وهي 2.

يستمر هذا حتى يتم استنفاد القيم ، أو تصل إلى الحد الأقصى للقيمة المحددة في التسلسل. تحقق من البرنامج التعليمي لتسلسل Oracle لمعرفة كيفية تعيين القيم الدنيا والقصوى.

استخدام دالة Nextval للتكرار الحلقي للقيم

يمكننا أيضًا استخدام دالة nextval لطباعة الأرقام من 1 إلى 10 كما هو موضح في الكود التالي:

إنشاء تسلسل looper_sequence
أبدا ب 1
زيادة بواسطة 1 ؛

تعيين SERVEROUTPUT على ؛
يبدأ
لأني في 1 .. 10
عقدة
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ؛
نهاية الحلقة ؛
نهاية؛

ينشئ الكود المقدم تسلسلًا جديدًا يسمى looper_sequence يبدأ عند 1 ويزيد بمقدار 1 لكل قيمة جديدة تم إنشاؤها.

ثم نقوم بتمكين خيار SERVEROUTPUT الذي يسمح لحزمة DBMS_OUTPUT بعرض الرسائل في وحدة تحكم SQL * Plus.

أخيرًا ، قمنا بإرفاق حلقة for داخل جملة end / start للتكرار عبر نطاق القيم من 1 إلى 10. ثم ندعو الدالة DBMS_OUTPUT.PUT_LINE لكل قيمة في النطاق ونطبع القيمة التالية في تسلسل looper_sequence إلى وحدة التحكم.

يطبع الكود القيم العشر التالية في تسلسل الحلقات. في حالتنا ، ستكون القيمة من 1 إلى 10 أو 11 - 20 ... وهكذا لكل مكالمة جديدة.

الناتج الناتج :

1
2
3
4
5
6
7
8
9
10


PL / اكتمل إجراء SQL بنجاح.

استخدام دالة Nextval في عبارة Insert

يمكننا أيضًا استخدام دالة nextval في جملة insert كمفتاح أساسي. فمثلا:

ادخل في المستخدمين ( هوية شخصية ، first_name، credit_card، country )
القيم ( test_sequence.nextval، 'جيمس سميث' و '4278793631436711' و 'الإمارات العربية المتحدة' ) ؛

في المثال المعطى ، نقوم باستدعاء الدالة nextval من test_sequence لإدراج قيمة عمود id في الجدول.

استنتاج

في هذا المنشور ، اكتشفت كيفية استخدام وظيفة Oracle nextval لجلب القيمة التالية في تسلسل. لقد تعلمت أيضًا كيفية استخدام الوظيفة للتكرار عبر مجموعة من القيم أو لإدراج قيمة فريدة في عمود جدول.