السلام عليكم ورحمة الله وبركاته
هاذي أول مشاركة ليا معاكم وياريت تتقبلوني ضيفة معاكم
أول أمر اللي هو (CURSOR)
وثاني أمر متى نستخدم ال (DBMS_OUTPUT.PUT_LINE)
ومتى نستخدم الامر (DBMS_OUTPUT.PUT)
وشكرا ,,,
السلام عليكم ورحمة الله وبركاته
هاذي أول مشاركة ليا معاكم وياريت تتقبلوني ضيفة معاكم
أول أمر اللي هو (CURSOR)
وثاني أمر متى نستخدم ال (DBMS_OUTPUT.PUT_LINE)
ومتى نستخدم الامر (DBMS_OUTPUT.PUT)
وشكرا ,,,
بسم الله الرحمن الرحيم
وعليكم السلام ورحمة الله وبركاته
مرحبا بكي اختي الفاضله وحياكي الله في المنتدى
بالنسبة للCursor فان الاخ ابو أبراهيم جزاه الله خيرا قد شرح بما فيه الكفاية
في دروسه والتي ارفقها في هذا الرد بصيغة ملف PDF
بالنسبة للفرق بين PUT و PUT_LINE
طبعا جميعها كما هو معروف للطباعة على شاشة Sql Plus
ولكن باستخدام PUT_LINE يقوم المبرمج بوضع كامل المعلومات والخاصة الى السطر في Buffer مرة واحده
ملاحظة:
Buffer المقصود به الذاكرة المؤقته في RAM فعندما تقومين بالكتابة في برنامج الورد مثلا قبل ان تقومي بحفظه فان ما تكتبيه يخزن في Buffer
اما باستخدام PUT فيمكن وضع المعلومات الخاصة بالسطر على شكل متتالي وذلك باستدعائها اكثر من مرة
ولكن الملاحظ ان put لا تعلم متى تنتهي من وضع البيانات في Buffer الا بعد اعطاء امر سطر جديد مثل
DBMS_OUTPUT.NEW_LINE;
بمعنى لن تطبع لكي ما كتبتيه الا بارفاق السطر السابق
حيث ان وظيفة هذا السطر هي اعطاء Buffer ما يسمى end-of-line marker
وهي تمثل العلامة التي يستطيع من خلالها PUT فهم انه حان وقت كتابة السطر الذي توجد معلوماته داخل Buffer
لو تلاحظي بأن PUT_LINE تقوم بنفس العمل عدا انها تقوم بالحاق end-of-line marker خلف سطرها مباشرة
مثال ذلك لو اردنا طباعة كلمة Smart Developer
فباستخدام PUT_LINE تكون هكذا
في البداية يجب اتاحة عمل PACKAGE عن طريق
set serveroutput on
ثم انتر بعد هذا السطر
المثال كاملا
set serveroutput on
BEGIN
DBMS_OUTPUT.PUT_LINE('SMART DEVELOPER');
END;لكتابة السطر السابق بطريقة put
BEGIN
DBMS_OUTPUT.PUT('SMART DEVELOPER');
DBMS_OUTPUT.NEW_LINE;
END;اذا لم يكتب سطر
DBMS_OUTPUT.NEW_LINE;
فما حيطلع اي شي في الناتج
طريقة اخرى
BEGIN
DBMS_OUTPUT.PUT('SMART ');
DBMS_OUTPUT.PUT('DEVELOPER');
DBMS_OUTPUT.NEW_LINE;
END;وبالتوفيق ان شاء الله
السلام عليكم ورحمة الله
وشكر واااايد يااخ Smart Dev وجزاك الله ألف خير.
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
ممكن أعرف الفرق بين الأمرين Truncate و Delete
انا اللي أعرفه انه أول فرق
ان ال Truncate تقوم بعمل حفظ تلقائي (Commit)ولا يمكن التراجع عنها من خلال الأمر (Rollback)
فهل يوجد فرق ثاني أم لا
والسؤال الثاني
ممكن أعرف فائدة الأمر Decode :
وشكرا ,,,
بسم الله الرحمن الرحيم
السؤال الثاني : هي تتيح لك عملية الاخيار بين عدة خيارات مثل :
select job , salary decode ( job , 'ANALYST' , salary*1.1, 'CLERK',salary*1.15, 'MANAGER',salary*1.20, salary) salary from emp;
من هذا المثال نلاحظ أنك تقول إذا كان عمل الموظف ANALYST فأجر العملية التالية : salary*1.1
وإذا كان الموظف عمله CLERK فأجر العملية التالية : salary*1.15
وإذا كان الموظف عمله MANAGER فأجر العملية التالية : salary*1.20
أو في النهاية اطبع الراتب الذي هو الـ salary
وكل هذه العمليات تجرى على جدول الموظفين emp
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
شكرا يااخ مبارك على اجابتك
بس ممكن أعرف بالنسبة للأمر Decode
هل هو بس لما نعرض البيانات ولا بإمكاني أضيفو كحقل للجدول
وشكرا ,,,
السلام عليكم
الأخت أميرة
بالنسبة للفرق بين Delete و Truncate
فالفرق الأول: زي ما كتبت بالضبط مع تغيير بسيط وهو أن الأمر Delete هو من أوامر ال DML اي انه يمكن عمل rollback أو Commit أما Truncate فهو لا يعمل لا rollback ولا Commit سواء كتبها المستخدم ام كانت تلقائية من Oracle وهو من أوامر DDL أي ان التغيير يحصل على ال Structure مباشرة وهذا هو الفرق الثاني كما سأشرحه في النقطة الثانية.
أما الفرق الثاني: يوجد في Oracle حاجة اسمها High Water Mark وهي من اسمها تعني انه كلما اضيفت سجلات الى الجدول فإن هذة العلامة تتحرك لتشير الى آخر Block لهذا الجدول ولكن عند الحذف باستخدام الامر Delete فهي لا ترجع أبدا أما عند استخدام الأمر Truncate فإنها ترجع لتشير الى أول Block لهذا الجدول اي انه حصل تغيير على Table Structure وهذا ما قصدته في الفرق الأول
أبو قصي
وعليكم السلام ورحمة الله
شكرا يااخ أبو قصي على مساعدك
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
ممكن اعرف الفرق بين بعض انواع البيانات:
النوع الاول Char
النوع الثاني Nchar
النوع الثالث Varchar2
النوع الرابع Nvarchar2
النوع الخامس Varchar
وشكرا ,,,
وعليكم السلام
بالنسبة للامر char لتخزين عدد ثابت من الاحرف والحد الاقصى له 2000 حرف
اما
ال nchar نفس الشي بس الحد الاقصى لطول الاحرف يتم تحديده بواسطة
الاعداد الخاص بالاحرف داخل قاعدة البيانات
بالنسبة ل varchar2 لتخزين بيانات حرفية متنوعة الطول والحد الاقصى هو 4000 حرف
ال nvarchar2 نفس الشي بس الحد الاقصى لطول الاحرف يتم تحديده بواسطة الاعداد الخاص بالاحرف داخل قاعدة البيانات
أما ال varchar نفس نوع البيانات char
(يعني ان ال varchar2 تحفظ عدد الخانات التي وضعتيها أما ال nvarchar2 تحفظ عدد الخانات المكتوبة في الجدول وهذه افضل لأنها لاتسبب هدر للذاكرة
وبالتوفيق
السلام عليكم ورحمة الله وبركاته
شكرا يااخ Stone
على مساعدك وجزاك الله الف خير
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…