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

سؤال في Pl/sql


أحساس غالي

Recommended Posts

وعليكم السلام ارجوا ان اكون قد فهمت سؤالك بطريقة صحيحة
وهي انك تريد اضافة سجل جديد الى جدول الطالب الاجابة كالتالي :
insert into Table_name (Fileds_name) select Fileds_name from Tables_name
where Condition ;
اذا كان فهمي للسؤال ارجوا الرد والسلام
اخوك محمد

رابط هذا التعليق
شارك

declare

begin
insert into STUDENT  values(val1,val2,...);
exception
when others then
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
end;



الاكسبشن دا هيظهر اي ايرور يحصل في البلوك

رابط هذا التعليق
شارك


السلام عليكم



السؤال....

Create a PL-SQL block to insert records into STUDENT table. The PL-SQL block must raise all possible types of exceptions.





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

اهلا وسهلا بالاخ أحساس غالي

حسب ما فهمت اخي العزيز الموضوع بسيط جدا جدا جدا

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

على فرض هذه حقول جدول الطلاب

stu_id رقم الطالب
stu_name أسم الطالب
stu_address عنوان الطالب
stu_phone تلفون بيت الطالب

وهذا هو الجدول

SQL> create table student(
 2  stu_id number,
 3  stu_name varchar2(20),
 4  stu_address varchar2(20),
 5  stu_phone varchar2(20)
 6  );

Table created.

SQL> 
SQL> alter table student 
 2  add constraint student_pk primary key(stu_id);

Table altered.



الان نريد كتابة البرناج الخاص بأضافة البيانات

بسم الله نبدء

SQL> declare
 2  v_stu_id number;
 3  begin
 4  select nvl(max(STU_ID),0)+1
 5  into v_stu_id
 6  from student;
 7  begin
 8  insert into student(STU_ID,STU_NAME,STU_ADDRESS,STU_PHONE)
 9  values(v_stu_id,&STU_NAME,&STU_ADDRESS,&STU_PHONE);
10  exception
11  when value_error then
12  dbms_output.put_line('Pleas Enter Number   ..');
13  when DUP_VAL_ON_INDEX then
14  dbms_output.put_line('This record store is already');
15  when others then
16  dbms_output.put_line('Another error...'||sqlerrm);
17  end;
18  commit;
19  end;
20  /
Enter value for stu_name: 'Mousa'
Enter value for stu_address: 'Amman'
Enter value for stu_phone: '0797907852'

PL/SQL procedure successfully completed.



ولكي نرى البيانات

PL/SQL procedure successfully completed.

SQL> select *
 2  from student;

  STU_ID STU_NAME             STU_ADDRESS          STU_PHONE
--------- -------------------- -------------------- --------------------
       1 Mousa                Amman                0797907852




هذا الايرور when value_error then خاص بخطأ في ادخال البيانات مثل ادخال حرف في حقل خاص بالارقام اول ادخال احد الرموز مثل *&^(#@ في خانة الرقم


هذا الايرور when DUP_VAL_ON_INDEX then خاص بالقيد المكرر يعني السجل هذا سبق تسجيله

هذا الايرور when others then خاص بحالات اخرى لذلك كتبت داخل sqlerrm لكي يعطيني الخطأ الحاصل .


طبعا انواع اخرى من الـــــــــــ Exeption مثل

invalid_cursor وهذا للخطا فى الكيرسر سواء فتحه وهو مفتوح او غلقه وهو مغلق
no_data_found وهذا يستخدم عند عدم رجوع جملة select باى ناتج
too_many_rows وهذا عندما تعود جمله select باكثر من صف والمتغير الذى لدى يكون مفرد
ziro_divide وهذا عند القسمه على صفر

طبعا يوجد انواع اخرى ...

ارجوا ان اكون اوصلت الفكرة بطريقة سهلة

وانا ان شاء الله جاهز لأي استفسار

اخوك موسى

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية