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 deptnoEND;
INTO v_deptno
FROM dept
WHERE deptname = ‘Accounting’;
UPDATE emp
SET deptno = V_deptno
WHERE empno = 10;
ข้อดีของภาษา 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 เราจะเขียนเป็น block ซึ่งแต่ละ block มีโครงสร้างดังนี้
[ DECLARE | 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
EXCEPTION |
5. การ Comment ทำได้ 2 วิธี คือ
5.1 ใช้ -- นำหน้าข้อความที่ต้องการ comment เป็นการ comment ตั้งแต่จุดนั้นจนจบบรรทัดนั้น6. การ Assign ค่าให้ตัวแปร ใช้เครื่องหมาย :=
5.2 ใช้ /* เปิด และ */ ปิดข้อความที่ต้องการ comment (สามารถใช้ comment ได้หลายบรรทัด)
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
ความคิดเห็น
แสดงความคิดเห็น