باسم الله الرحمن الرحيم اليوم ان شاء الله بنكمل في
chapter 6 ال PLSQL اتكلمنا في نهاية المحاضرة اللي
فاتت عن ال procedures و ال functions حكينا انه في
procedures او functions موجودة في ال Oracle نفسها
او في ال database نفسهاو في procedures او
functions احنا ممكن نعملها creation و حكينا فيه
فرق أساسي بين ال procedure و ال function ايش هو
الفرق الأساسي ال function لازم تعملي return ل
value بينما ال procedure مافيش فيه return ولا لأي
value الاتنين ممكن ياخدوا parametersممكن انا
اعطيهم parameters لكن ال function هي فقط اللي
مسموحليها ترجعلي value بنستخدم فيها ال return
keyword في نهايتها بينما ال procedure مافيش فيه اي
returnكيف بنعرف أو كيف بنعمل ال procedure أو ال
function نعتمد على جملة create نستخدم غالبا create
or replace الهدف من replace أنه لو ال procedure أو
ال function موجودة بنعدل عليه إذا مش موجود بتم عمل
create له بنحدد إذا كان ال procedure أو ال
function بكتب procedure أو function إذا كتبنا
procedure بنحط procedure name parameter list إذا
بدي parameters إذا ما بدي parameters مافي داعي
نعمل ال list هذهis و بحط ال declarations اللي عندي
ال variables بتاعوني begin و end زي أي code block
في ال BLSQL begin مع end و ما بين ال begin و ال
end بحط ال statements و إذا في عندي exceptions
بحطهم في section خاص في ال exceptions نفس ال code
هذا لو بديه function بدل create or replace
procedure هنكتب create or replace function
وهيزيد عندى انه انا بدي return طيب فقبل ال is هذه
بدي احط return و
بحدد ايش نوع ال return number variable character
date whateverبنحدد إيش نوع ال return اللي هترجعه
ال function هذا بس تحديد للنوع مش أكتر بتعملش
return مش .. مش هذا مكان ال return هذا فقط مكان
تحديد نوع ال return انه number او character او
date is و بحط ال declarations و بكتب ال code تبعي
في نهاية ال code لما بتخلص ال function أخر سطر
بحطوا إيش return
و بحط اسم ال variable اللى بدى اعمله return مثلا
x, y, whatever اللى انا بدى اعمله return ورجعه لل
user ال parameter types اللى ممكن استخدمهم في ال
procedure او في ال function بنقسمه لتلت أنواع ال
in و ال out و ال in out اي parameter بكتب عليه انه
نوعه in يعني مسموح ليه اني اقرأه can be referenced
ممكن اعمله referencing و اقرأ قيمته لكن ممنوع اغير
عليه او اعدل عليه cannot be overwritten ممنوع ان
اكتب على هذا ال parameter ممنوع اغير قيمته اذا كان
ال parameter مكتوب عليه out مسموح ان اعدل عليه بس
ممنوع اقرأ قيمتهغالباً بيجيني فاضي مافيش فيه قيمة
بكون أنا في ال function أو في ال procedure بدي
أعبي جوا إذا كان نوعه in out معناته أنا ممكن أقرا
قيمته و بعدين بعد ما أقراها أعدل عليه و أرجع جوا
قيمة محددة هيفندي example على code ل procedure
create or replace procedure ده سميه award bonus
Procedure بده يعطي bonus للموظفين اللي عندي إذا
هاي الاسم وعملنا parameter list فتحنا قسين وحطينا
كام parameter اتنين واحد اسمه MID واحد bonus
واتنين إيش نوعهم N يعني هدول اتنين إيش أنا بدي
أعمل بدي أقرأهم مابدي أعدل عليهم بدي أقرأهم و
أتعامل معهم و الاتنين مالهم numberطبعا ممكن يكون
number ممكن يكون date ممكن يكون variable character
او character اي نوع من الانواع الموجودة عندى في ال
database اذا بحط انا اسم ال parameter و in او out
او in out و بحدد ايش نوعه number او date او
character is بيبدأ عندى بعد ال is اللى هو ايش ال
declarations ال variables اللى جوا ال procedure او
ال function كام variable فيه عندى؟اتنين واحد اللي
هو commission واحد ال commission underscore
missing ال commission underscore missing عرفته انا
على انه ايش نوعه exception طبعا هنيجي نشرح بعدين
في نهاية اليوم او في محاضرة تانية ال exceptions بس
مبدأيه بدنا نعرف انه هذا exception انا بده اعرفه
من عندي وهذا number ال commission عبارة عن number
لان هي ال begin بداية ال code وين نهايته عند ال
end هي ال endهذا كل ال code اللي عندي وهذه الجزئية
من ال code اللي بتتعامل مع ال exception إذا نصفر
ال code الرئيسي عندي بين ال begin و بين كلمة
exception نشوف ال code إيش بيعمل أول إش هعمل
select لكلم اسمه commission underscore bct من أي
table from employeesو القيمة اللي في الكولوم هذا
إيش بدي أعمل فيها بدي أقسمها عالمية و أخزنها into
ال commission هاي ال commission variable إحنا
عرفناه إذا أنا عملت variable اسمه commission روحت
جيبت قيمة من table employees و حاطيتها جوا عشان
أضمن إنه لرجع عندي سطر واحد بالديوير في ال select
بالديوير ال employee ID بساوي رقمemployee ID هذا
من أين جبته أنا؟ شايفين من أين جبته؟ ال employee
ID هيه يعني أنا جبته ك parameter لل function يعني
ال function هذه حاجة أستدعيها أحكي award bonus 100
هيروح يعطيني معلومات الموظف لرقمه 100 award bonus
155 هيروح يجيبلي معلومات المبلوغية لرقمه 155
function أنا بس ادعيها و procedure بحطله parameter
من ضمن ال parameters رقم الموظف if commission هذا
ال variable اللي احنا جيبناه من كله مقسمناه عامية
اذا ال commission هذا is nullكيف ممكن يصير هذا
null؟ إذا كان ال column أصلا نفسه، إيش قيمته؟ null
لإن احنا حاكينا null تقسيم رقم، إيش بيعطيني؟ null
مش أخدناها لما شرحنا في الشابط السابق كيف نتعامل
مع ال null فإذا كانت قيمة ال column أصلا null،
هتصير ال variable هذا null فانا هفحص إذا ال
combination is null، then اعملي exception، في عندي
مشكلة raiseالـ commission missing الـ commission
missing إيش هذا؟ exception إحنا عرفنا exception
فاحنا عملنا raise ل exception فهيتوقف ال code إذا
وصلنا المكان هذا وعملنا raise exception ال code
هيتوقف وهيروح وين؟ عند ال exception طب عفرض ماكانش
nullهيكمل else احنا حكينا if null طب مش null else
ايش بتعمل update لل employees لtable employees set
ال salary بتغير قيمة ال salary بتساوي salary plus
bonus مضروب في ال commission ال commission اللي هو
هيه اللي هو عبارة عن ال commission BCT عالمية وال
bonus برضه ايش variable احنا اعطيناها لل function
برامتر احنا اعطيناها لل function
فهيجمعلي اياهم ويغير قيمة ال salary where ال
employee ID هو نفس ال ID اللى فحصها هنا فوق ال
employee ID اللى جاى من البرامج هى هيك بكون انتهى
ال code في حالة لو كان في exception هاي ال
exception part ايش هيعمل win نوع ال exception ايش؟
commissing اللي هو اللي انا عملته then بدي ايه
يطبع dbms output bot line بدي يخليه يطبع ايش بدي
يطبع this employee does not receive a commission
مالهوش commission لأنه قيمة ال commission كام كانت
none فانا هاطبع انه مافيش عندي commission خلصنا لأ
when others يعني اذا في exceptions تانين others
يعني اي نوع تاني من ال exceptionsأي نوع exception
when others ايش بديك تعمل null ولا اشي ما تعملش
اشي if في اي exception تاني غير الكم missing اللي
انا عملتها عملتلها raise مابديش يعمل اشي null و
end و انهينا ال procedure لأن ال procedure هذا
هيتخزن في ال database باسم ايشaward bonus حيشتغل
هذا لسه ماشتغلش احنا لحد الان function و كتبناها
procedure و كتبناها عشان يشتغل لازم أستدعي و أحطله
ايش parameters كيف نستدعي هذا عشان أستدعي بكتب ايش
award underscore bonus اللي هو اسمه و لازم اعطيه
ايش بينقصين parameters رقمين number و number مثلا
اعطيه 100 لرقم ال employee و ال bonus مثلا 200
بستدعي بهذا الشكل كيف ده نستدعي؟ هيك الجملة تاعة
الاستدعاء بكتب execute ال
command execute في ال BLSQL بنفذ ال functions أو
ال procedures اللي موجودة عندي هكتبله execute اسم
ال function اللي احنا كتبناها أو ال procedure
وعطيته 150 لرقم ال employee و 400 لمن؟ لل bonus
هيروح ينفذ ال code ده نفذ ال code كمان مرة لموظف
تاني بس بغير رقم ال employee و بغير قيمة ال bonus
اللي بتعطيها هل ممكن نكتب code صغير زي هيك على ال
tables اللي كانوا معنا ال sellers مثلا و ال boats
تعالي نجرب نكتب مع بعض احنا function او procedure
و نجربه مع بعض فتحت الأوراق اللي عندي و بدنا نكتب
codeحكينا كيف نعمل procedure او function ايش ببدأ؟
هي create or replace ايش بدنا نسميها؟ my my proc
اختصار my procedure تمام؟ ايش نعطيها؟ صحيح
procedure
my procedurecreate or replace procedure my
procedure ايش نعطيه parameters نعطيه مثلا رقم
السيلر و نعطيه rating جديد مثلا يطلعلي السيلر و
يغير ال rating اللي له فبدأ أجي أكتب هذه ID هذه N
ID in عبارة عن إيش؟ عن number وكمان بدنا نعطيه إيش
غير ال ID؟ بدنا نعطيه rating بدنا نسميها R rating
برضه in و برضه عبارة عن number is
هل
بالزمن variables؟مش كتير معنى ب variables معنى بس
أني أجيب .. أستخدم بس ال ID و ال R أطلع sailor من
نفس ال ID اللي أنا هعطيها و أغير ال rating اللي
له، أغير قيمة ال rating فمش هعمل أي variable، مش
هستخدم variables خلينا
نطبع اسمه، نعمل variable بالاسم، هيا بدا أسمي ..
بدا أعمل variable، بدا أسمي X nameو هاي بدي اعمله
.. نستخدم ال type بديش اعمل variable character ولا
character ده استخدم ال type كيف ده استخدم ال type
ايش بدي اعمل sailors.isname
صح مش هيك نستخدم ال type type هيك معناته ان انا
عملت variable اسمه xname بياخد نفس نوع ال isname
من اي جدول من ال sailors و هاي بدي اعمل beginبدي
أبدأ ال code تبعي أول إشي بدي أعمله بدي أعمل
select لمين؟
لإنطلع ال name تبع ال sailor اللي هو ال S name
وإيش كمان بدنا نطلع؟
أول إشي بدي أطلع بدي أطبع اسمه و بعدين هغيره
القيمة select ال S name from sailors
where ال SID كان بتساوي بتساوي ال ID هى ال ID اللى
احنا هنعطيه لل function ال SID بتساوي ال ID اللى
هيجي عندى ال name اه فى احنا غلط ما غلطة شنيعة
نعملنا select وماعملناش into طيب المشكلة
يعنىInter و عيد؟ لأ مشكلة طيب إيش بده أعمل؟ لأ لأ
مش .. هتكون قصة طويلة طيب إيش بده أسوي؟ بده أخد ال
notepad أسلف ال editing مش هيرضي يخديني أعمل copy
بس بده أحاول .. بده أحاول أن أعيد ال code بس على
السريع عشان لو غلطت ما .. مايغلبنيش على ال notepad
مش مش حاشة راح بدنا نكتب بس أنتوا نقلوني إذا
شفتوني غلطة في الكتاب أحكولي تمام procedure
my procedure id in number فاصل R in برضه number is
is xname sailors.isname percent type begin
select اللي هو isname into
ال xname from sailors
where ال SID بتساوي ال ID صح طيب خلينا نكمل ال
code لان جيبنا احنا ال S name خزناها في variable
سمينا ال X nameوحددنا ان ال seller اللى بدنا نجيب
معلومات اللى هو اللى إيه ال ID اللى احنا حطناها
لان بعد ما طلعناها بدنا نطبع الكلام هذا نفرجيه لل
user فعشان بدنا نستخدم DBMS underscore output dot
bot line و هطبع اكتب ان ال name مسافة
و هى ال two columns هدولبدي اطبع مين اللي هي ال X
name لأن بعد ما اطبعها بدي اروح اعدل على ال rating
فبدي اعمل update .. كيف بنعدل احنا في ال .. يلا
update update
اللي هو sailors set
.. ايش يالا
rating set rating بتساوي زي هيك R where ال SID
بتساوي ال ID مظبوط هيك update sellers set rating
بتساوي ال R الجديدة اللي احنا هنعمل قيمتها الجديدة
هاي where ال SID بتساوي ال ID طب
كيف نعرف إيش كانت ال rating و إيش صارت نطبعها قبل
نطبعها بعد حاجة أجيب نفس ال code هذا Ctrl C Ctrl V
و بدل ال name إيش ده أطبع؟ بدأ أكتب old rating و
بدنا نطبع مين؟ ال R عشان نطبعها بدنا variable لها
صح؟طيب بدأت يحكي oldr عبارة عن مين؟ عن ال sailors
dot rating type صح ال
oldr فالان ده طبع أنا إيهش ال oldr دي بيبقى miss
output bot line old rating ده طبع ال O underscore
Rطيب و احنا جايبينها .. جايبينها من هذه منعناته
select الاس name فاصلة مين بدنا نطلع ال rating و
بدنا نخزن في ال x name و مين ال old rating فاهمين
اش .. بشتغل ولا لازم أشرح و أصل الفكرة عملنا two
variables ال x name و ال old rating خزننا ال اس
name و ال rating في ال x name و ال old ratingروحت
طبعت ال name بعدين هاني طبعت ال old rating بعدين
بدي أروح أعمل update و بعد ما أعمل ال update بدي
أطبع القيمة لجديد بدل ما أطبع ال .. هاي بس بدي
أطبع مين ال R صح؟ ضال إشي
هذه بنسميها new rating ده أطبع ال R خلصنا نعمل end
و semi-colon هاخد هذا ال code و أنسخه هنيجي أول
إشي بنحل مشكلة الغلط هذا هنعمل هيك مش عارف إيش
هيصير هيعطاني warning إنه في errors في ال
compilation لإنه ماكملناش الكتابة صح للكل لإن ال
code الجديد هجيبههعمله based enter وهي اللي هي ال
slash برضه في مشاكل procedure created with
compilation errors لأ وين ال compilation errors
اللي في create or replace procedure mybroke id in
number فاصل r in number is في
begin في end
طيب بناخد جزء منه نشوف إيش هيعمل بداخل
جزء بدون ال update وهي
end في
مشكلة في ال update في آخر
لأ أكيد rating هاي عشان أتأكد هي description لل
sailors هاي description sailors rating .. rating
عبارة عن number .. rating مافيش مشكلة rating
مكتوبة صح rating ست rating و
ال SID بتسامى IDطب احنا لو جيبنا هذه هيك لوحدها صح
هي
كمان مرة Ctrl C هي فايدة ال create on replace لو
انا بس بعمل create الان في اصلا في procedure
بالاسم اللي احنا عملناه
أي انتر ان شاء الله فيش مشاكل تمام هاي procedure
created لكن لحد دلوقتي ال procedure ماشتغلش احنا
كل اللي عملناه ان احنا عملنا procedure سمنها my
procedure بس عشان نشغله كيف ده نشغله ده نعمل اللي
هي execute execute
ايش اسم ال procedure تبعنا my proc بياخد رقمين ايش
الرقم الأول فبدي اعطيه ID موجود في الجدوللو أعطيته
ID مش في الجدولاش حيصير .. حيصير مشاكل و المشاكل
هي هتعمل exception و أنا عامل handling ل exception
فهيضرب ال procedure فالان هنجرب نشتغل إشي صح و
بعدين هنجرب نشتغل إشي يعملنا exception و نشوف
أهمية وجود exception في ال .. في ال procedures
بتاعتنا ه execute my procedure بدي .. في عندي رقم
31 موجود .. موجود؟ موجودبدنا نعطيه rating جديد
تسعة okay هاي execute my procedure هينفذها ولا لأ
okay كتبلي ال PLSQL procedure successfully
completed إيش عمل طبع ال name looper ال old rating
إله كام تمانية لل new rating تسعة لإن أنا بحب
الجدول اللي عندي يظل مالهيظلوا زي ما هو عشان لما
نفذ ال code اللي عليه تبع ال chapters يعطيني نتائج
صح مايعطنيش نتائج غلط فبدأ ارد عشان هيك انا طبعت
ال old تمام عشان هيك كنت انا معنى ان اطبع ال old
ارجع القيمة زي ما كانت فالان بدأ ارد ارجع ال
rating لكم ل تمانية فالان هي أعطاني ان ال old هي
كم تسعة و ل newتمانية طب لو احنا أجينا زي هيك و
حاكيناله فيه بدنا نعطيه رقم مائتين و خمسين ماعتقدش
في عنا حد مائتين و خمسين في الجدول إيش هيصير؟
أوراكل error وعطاني رقم لل error no data found
بعدها كذا ات الاسم ال user اللي انا داخل فيه على
Oracle اسمه الاء dot my procedure يعني هو بعرف ال
procedure باسم ال user لأنه انا اللي عملت ال
procedure فحكالي الاء dot my procedure في line 5
فيه مشكلة بعدها رجع حكالي فيه كمان at line 1 فيه
كمان مشكلة كل هذه المشاكل سببها ان احنا روحنا مين
روحنا استخدمنا ID مش موجودفي الجدول اللي احنا ال
procedure بتعامل معاه ففي حد بيضمن انه لما انت
تعمل برنامج databaseمايجيش واحد يدخل رقم طالب مش
موجود أو رقم موظف مش موجود مستحيل فلازم يكون في أي
كود احنا بنعمله و بنعمله فيه exception handling
بحيث انه احنا لما يكون ال data اللي عندنا قيمة
tunnel او فيها مشكلة او مابترجعش اي data نروح احنا
نطبع على ال user نحكيله انت ايش انت عملت exception
و مافيش رقم بهذا الشكل يعني الكود هذا اللي احنا
عملناه الآن لو احنا جينا كتبنا فيه اللي هو
exception
وحكينا له win others يعني اي exception then
اطبعيلنا سطر هتنعمل طباعة هاي
سطر للطباعة اشنه نطبعله نحكيله ان في عندك انت
مشكلة في ال code هاي
بدك تبقى بس كلمة اروح مكفي تمام
انا هاخد ال code الجديد نرد
كمان مرة نستبدله بال codeالقديم اللي عندنا حكاية
ال procedure created لأن ال procedure اللي عندى
تغير ضفنا عليه exception بتعامل مع أي نوع
exception إيش ما يعطيني البرنامج errors دي يروح
يطبعلي إيش يطبعلي كلمة error و بس مش هتطبعلي غيرها
فهي بداجة أنفذ نفس السطر السابق طويلة يعني طيب هاي
execute
اسم ال procedure my procedure وروح ان احنا كنا
كاتبينه 250 بناعطيه rating 9 صح ه execute my
procedure ايش طبعلي و ايش حكالي عن ال procedure
ماعملش crashما ضربش ما خربش ال procedure تبعي
السبب ان انا استخدمت ال exception هاي فائدة ال
exception ان انا اتعامل مع ال exceptions نرجع
للشرح تبعنا و نشوف كيف بدنا نطور على ال code تبعنا
و كيف نعمل exceptions بشكل سليم نصلت فكرة ال
procedures طيب في كمان طريقة تانية ممكن احنا ننفذ
فيها ال procedures و ال functions غير ال execute
ممكن احنا نعمل select
و نكتب اسم ال procedure و نحكيله from dual
دول هذا تابل وهمي في ال system في ال Oracle بسمح
لي أن انادي functions و procedures خليني برضه
نشوفه قبل ما نكمل شرح عشان نشوف طريقة تانية لل
execution يعني
انا ممكن اجي اعمل زي هيك select
my procedure خلّينا
برضه على 250 9 from dual هذه بدل ما أعمل إيش بدل
ما أعمل execute error
my
procedure
my function ليش
أخد ال my function؟ أه طيب ماشي لأن بشرح الفرق
بينهم لأن إيش المشكلة؟ ليش مرضيش ياخد ال
procedure؟ حكاية ال invalid identifier على ال
procedure ال select عادة لما بنعمل select ترجعلنا
قيم صح؟ selectبترجع قيم لان انا لما عملت select
واسم ال procedure ال procedure بعمل return ل type
بعمل return ل value لأ ف ال select هي عندي ضربت
فعملتلي مشكلة عطاني ال error بينما لما استدعت
function انا كنت عاملها مسبقا بالطريقة هي select
واسم function مش ال procedure ال function بترجع
ايش؟ بترجع قيمة او value فراعرض القيمة اللي رجعتها
اللي هي Dustinفالطريقة التانية هذه أنسب لل
functions مش لل procedures اللي هي ال select from
دوال مش هتشتغل مع ال procedures هتشتغل مع ال
functions
إذا شرحنا ال execute و شرحت ال select from اسم ال
function from dual و حكينا أن ال select أنسب لل
functions لأنه بترجعلي قيمة لو روحنا نعمل execute
ل function برضه ممكن تضرب لأن ال execute ال
function هترجع قيمة مافيش مكان ترجعها عليه مع ال
execute الآن برضه هجربها بعد ما أشرح شوية هجرب
نعمل execute ل function وشوف كيف أنها العكس هتضرب
في هذه عندى كمان example example 2 create or
replace procedure ال procedure هذا بنتسمي update
management كم attribute ماخدواحد بس number عبارة
عن number رقام و إيش بنعمل فيه بس in فقط بنقرأ
قيمته ما راح نعدل عليه في ال procedure اللي احنا
عملناها قبل شويه على ال sailors كان عندنا two
parameters إيش عملنا فيهم قرأناهم لو حاولنا نغير
عليهم يعني نخزن فيهم إشي كانت برضه الأوراك اللي
هتعطيني إيش هتعطينا error لأن احنا عملينهم in و
بنحاول نعمل عليهم out بنحاول نكتب عليهم إلا إذا
أنا عملتهم in outإذا عملت in أوت تصبح مسموح أقرأها
و أعدل عليها as هي في عندي variable داخلي title
title string وعملناها string تلاتين حرف إذا كان
كام variable عندي صار في عندي رقم اتنين و رقم واحد
company ID بقرأه ك parameter و هذا داخلي عندي الآن
هنعمل begin هكتب select title into title string
عند خزين في مينفي ال variable التاني from جدول ال
employee where ال company ID بيساوي مين ال company
ID اللي احنا أخدناه ك parameter فهيروح يشوف رقم ال
company ويجيب لي ال title تبع ال company هذه من
جدول ال employees ويحطه في ال title string لأن بدي
أفحص if ال title string بيساوي presidentthen بدى
نفذ code else if إذا ال title بيسوي vice president
نائب الرئيس then بدى نفذ code إذا أنا في عندي
حالتين بدى أتعامل معاهم إذا كان ال string اللي رجع
president أو vice president إذا كان president إيش
بدى أعمل بدى أروح أعمل update على جدول ال
employees و أحول ال salary لقيمتها مضروبة في إيش؟
في نص يا حرام طيران نص راتبهطيب where ال company
ID بيساوي نفس ال company ID in اللي استخدمنا فوق
الحالة التانية هنخلي الراتب تبعه كام الربع هننزل
راتب ونخليه ربع الراتب and if ال exception إذا في
عندي مشكلة مارجعليش مثلا ولا إشيالقيمة اللى كنا
بدخلناها مثلا ال company ID مش موجودة في الجدول
وبالتالي النتيجة هتكون انه مافيش rows هترجع مش
ممكن ان نعمل ال update هاي ولا ال update هاي
فهيصير error فهتيجي ال exception تعالجه when ال
exception when no data found بتعامل مع exception
ايش اسمه اسمه no data found هذا ال exception بيطلع
لما احنا بنعمل selectو مابترجعش أي data شايفين ال
select into I؟ ال select into I لو مارجعتش ولا
قيمة تخزنت في ال title string بيشتغل معاه
exception هيك اسمه اسمه no data found هذا ال
exception موجود في الأصل في ال Oracle موجود أصلا
في ال Oracle لما هنجي نحكي عن exceptions هنذكر
أربع أو خمس أنواع بيطلعوا دايما معنا نتعرف عليهم و
نضمنهم هذا no data found no data found متى بيطلع؟
لما يكون عندي select into مافيش فيها إشي فإذا في
عندي no data found then إيش بدي أعمل؟ ولا إشي يعني
بس بدي أسكت ال exception همسك ال exception وسكته
then null ولا إشي ماتعملش إشي إذا أحنا معنين يبين
لل user إنه صارت مشكلة ممكن أنهاجي أعمل إيش سطر
طباعة أطبع لل user أحكي له مافيش data أحكي له no
data found أو أحكي له data empty أو أحكي له error
occurred مثلاو بعدها end و بنخلص البرنامج إذا بدنا
نعمل أكتر من exception
بعمل win واسم ال exception then بعدين win واسم ال
exception جديد then جاي أمثلة فيها أكتر من
exception هنتكلم عنها فكرة ال code واضحة ولا صعبة
يعني لو جبت أنا code زي هذا و جبنا مقابله في
امتحان جدول فيه بياناتوحكينا إنه بدنا نستدعي ال
function هذه بحيث إنه مثلا رقم ال company ID كذا
نقدر نتبع على الجدول نشوف إيش القيم اللي هتنحط
وإيش ال output وإيش اللي هيطلع في امتحانات ال
python مش كان يجيكم زي هيك code و تشوفوا ال code
إيش بيطبع أو إيش بيعمل ممكن نفس الإشي في الامتحان
يجيكم code زي هيكفي الامتحان النهائي كود زي هذا
معاه جدول فيه قيم وإنه لو استدعينا ال function هذه
بالقيمة الفلانية إيش ال function هتعمل؟ إيش هتطبع؟
انكم أنتوا تكتبوا ال code هذا كامل؟ لأ ماظنتش طيب
ان شاء اللهالاستطلاع اللى عملناه اكتر من 60% منكم
حكوا على ال model تمام هذا example تانى ترجعوه
انتوا في البيت انا بتنهي عند اللحظة هذه المرة اللى
جاى بنكمل على ال functions وعلى ال cursors