Jan
16
2009
PL/SQL 11g New Feature ตอนที่1 When Others
Written by Administrator   
ถ้าเป็น PL/SQL Programmer  ไม่ว่าจะเป็นมือเก่าหรือมือใหม่ จะต้องรู้จักและเคยใช้งาน Exception When Others แน่นอน และหลายๆครั้่งที่ผมเองเคยเจอ Exception ถูกใช้งานในลักษณะนี้  

    Begin 

        Coding ......... 

    Exception When Others then 

           null;

    End;

   นั่นหมายความว่า เมื่อเกิด Error ใดๆ ขึ้น ก็ไม่ต้องสนใจ ปล่อยไว้อย่างนั้นแหละ....  น่าตกใจที่ Coding แบบนี้จะสามารถพบเจอได้บ่อยๆ 

 

   Oracle 11g ไำด้เพิ่ม Warning ใหม่ คือ PLW-06009 เป็น Message เกิดขึ้นใน ขณะที่ Compile Code เป็นการเตือนใหู้้ว่ามีการเขียน Exception  แบบนี้อยู่ที่ Procedure หรือ Functionบ้าง 

   Warning รหัสนี้จะต้องทำการ Enable เสียก่อนจึงจะถูกเรียกใช้งาน โดยการแก้ไข parameter เป็น Enable 

    SQL> alter session set plsql_warnings = 'enable:all'
     2 /

    เมื่อ Compile Code แล้ว สั่ง 

SQL> show error
Errors for PROCEDURE MYPROC:

LINE/COL ERROR
-------- -----------------------------------------------------------------
8/7 PLW-06009: procedure "MYPROC" OTHERS handler does not end in
RAISE or RAISE_APPLICATION_ERROR

   Warning จะช่วยให้  Programmer รู้ว่ามีการใช้งาน  Exception When Others Then null เกิดขึ้น อาจจะไปปรับแก้ไข เพื่อให้ลด BUG ที่จะเ้กิดตามมา หรือปล่อยไว้ เพราะแน่ใจ Code นี้ไม่เกิด Error แน่นอน  อย่าลืมนะครับ ในระบบงานใหญ่ๆ มีเป็นพันๆ PL/SQL Code   Error ที่เหมือนเล็กๆ น้อยๆ เหล่านี้ ถือว่าเป็นตัวป่วนได้ดีทีเดียว ดังนั้น  การที่เรารู้ว่ามันอยู่ตรงไหนบ้าง ก็มีส่วนช่วยให้เีราหา BUG ที่เกิดขึ้นจากการ Code ไ้ด้เร็วยิ่งขึ้น  

 

Ref:  http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features/11g-efficient-coding.html

 

 

 

Comments
Add New Search
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."