PL/SQL_001_Introduction to PL/SQL ตอนที่ 1


PL ย่อมาจาก Procedural Language เป็นภาษาที่ Oracle พัฒนาขึ้น เพื่อให้ผู้ใช้สามารถพัฒนาโปรแกรม ในลักษณะ procedure ได้ โดยในขณะเดียวกันยังคงสามารถใช้คำสั่ง SQL ได้เช่นเดิม ลักษณะคำสั่งภาษา SQL จะเป็นการสั่งทีละคำสั่งเดียว แล้วให้ผลลัพธ์ทันที เช่น
SELECT * FROM emp;
หรือ
UPDATE emp SET salary = salary * 1.1;
ส่วนลักษณะคำสั่งภาษา PL/SQL จะเป็นการทำงานทีละ procedure เช่น
DECLARE V_deptno NUMBER;
BEGIN

SELECT deptno
INTO v_deptno
FROM dept
WHERE deptname = ‘Accounting’;

UPDATE emp
SET deptno = V_deptno
WHERE empno = 10;
END;
ข้อดีของภาษา PL/SQL
1. Control flow การทำงานในโปรแกรมได้ด้วยคำสั่งต่าง ๆ เช่น IF statement, Loop ต่าง ๆ
2. การเข้าถึงข้อมูล สามารถทำได้ง่ายด้วยคำสั่ง SQL ธรรมดา
3. Portability คือ เขียนโปรแกรมครั้งเดียว สามารถ port ข้าม platform ได้ถ้าต้องการย้ายเครื่อง ไม่จำเป็นต้องเขียนใหม่ สามารถเอา source code เก่ามาใช้ได้เลย
4. Tools ต่างๆ ของ oracle ใช้ภาษา PL/SQL ในการเขียนโปรแกรม ทำให้ผู้พัฒนาไม่ต้องเรียนรู้ หลายภาษา เพียงแค่เรียน PL/SQL อย่างเดียว ก็สามารถพัฒนา applications ด้วย oracle tools ได้เลย (แต่ต้อง เรียนรู้ features ของ tools นั้น ๆ เพิ่มเติม)
5. ใช้ตัวแปรได้
6. Handle exception ได้ (exception = error ที่เกิดระหว่างการทำงานในโปรแกรม) เช่น การหารด้วย 0

โครงสร้างโปรแกรมภาษา PL/SQL
การเขียนโปรแกรมภาษา PL/SQL เราจะเขียนเป็น block ซึ่งแต่ละ block มีโครงสร้างดังนี้
[ DECLARE
การประกาศตัวแปร
]
BEGIN
[ EXCEPTION

Exception Handling
]
END;
1. Declaration Section
เริ่มด้วย DECLARE


2. Executable Code
เริ่มด้วย BEGIN
 จบด้วย END;
3. Exception Handler
เริ่มด้วย EXCEPTION
 และจะถูกสร้างไว้ก่อนEND;

หลักการเขียน PL/SQL Blocks
1. การประกาศตัวแปร และการ Handle Exception เป็น Optional ถ้าไม่ใช้ ไม่ต้องมีก็ได้
2. แต่ละคำสั่งจะปิดด้วย ; เสมอ
3. สามารถเขียน PL/SQL Block ซ้อนกันได้
DECLARE
BEGIN
DECLARE
BEGIN
EXCEPTION
END
<= Sub Block
EXCEPTION
END
4. ตัวแปรที่ประกาศภายใน Block จะใช้งานได้เฉพาะใน Block นั้นเท่านั้น ถ้าออกนอก Block แล้ว จะไม่รู้จัก
5. การ Comment ทำได้ 2 วิธี คือ
5.1 ใช้ -- นำหน้าข้อความที่ต้องการ comment เป็นการ comment ตั้งแต่จุดนั้นจนจบบรรทัดนั้น
5.2 ใช้ /* เปิด และ */ ปิดข้อความที่ต้องการ comment (สามารถใช้ comment ได้หลายบรรทัด)
6. การ Assign ค่าให้ตัวแปร ใช้เครื่องหมาย :=
7. การใช้เครื่องหมาย มีดังนี้
เปรียบเทียบค่า ได้แก่=, >, <, <=, >=, <>, !
Logical Operator ได้แก่AND, OR, NOT
การคำนวณ ได้แก่+, -, *, /, ** (ยกกำลัง)
Concatenation Operator สำหรับตัวอักษร ได้แก่||


การประกาศตัวแปรในภาษา PL/SQL
SYNTAX :
variable_name [CONSTANT] datatype [NOT NULL][{DEFAULT|:=}initial_value];
โดย :
variable_nameคือชื่อตัวแปร
CONSTANTเป็น keyword ว่าตัวแปรนี้ เป็น constant variable (ค่าคงที่) ไม่สามารถเปลี่ยนค่าได้
datatypeคือประเภทของตัวแปร เช่น
NUMBER[(p[,s])] number (p = precision, s = scale)
CHAR[(n)] fixed length character (default = 1 char)
VARCHAR2(n) variable length character n คือ maximum length
BOOLEAN logical มี 3 ค่า คือ (True, False, Null)
NOT NULLเป็นการตั้งกฎไว้ว่า ตัวแปรนี้ต้องมีค่าเสมอ (ห้ามเป็น NULL)
{DEFAULT|:=}initial_valueเป็นการกำหนดค่าเริ่มต้นให้ตัวแปร
หมายเหตุ ถ้าระบุ NOT NULL หรือ CONSTANT keyword ในการประกาศตัวแปรแสดงว่า ต้องมีการกำหนด Initial value ให้ตัวแปรนั้นด้วย

ตัวอย่างการ Declare ตัวแปร
1. V_amount NUMBER (12, 3); จะได้ตัวแปรชื่อ V_amount เก็บตัวเลขความยาวสูงสุด 12 หลัก แบ่งเป็นหน้าจุด 9 หลัก หลังจุด 3 หลัก (ค่าสูงสุด ที่เก็บได้คือ 999,999,999.999)
2. V_Vat NUMBER (5, 2) := 10; ได้ตัวแปรชื่อ V_vat เก็บตัวเลขหน้าจุดได้ 3 หลัก หลังจุด 2 หลัก และมีค่าเริ่มต้นเป็น 10 ทันที
3. V_valid BOOLEAN NOT NULL := TRUE ;


ที่มา : http://www.exzilla.net

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วงจรของการพัฒนาระบบ (System Development Life Cycle - SDLC)

PL/SQL_002_Introduction to PL/SQL ตอนที่ 2