Oracle ประเภทข้อมูล PL/SQL: บูลีน ตัวเลข วันที่ [ตัวอย่าง]
⚡ สรุปอย่างชาญฉลาด
ชนิดข้อมูล PL/SQL กำหนดวิธีการ Oracle ทำหน้าที่จัดเก็บ จัดการ และจำกัดค่าแต่ละค่าในบล็อก โดยจัดกลุ่มเป็นตระกูลอักขระ ตัวเลข บูลีน วันที่ และวัตถุขนาดใหญ่ (LOB) แต่ละตระกูลมีรูปแบบการจัดเก็บ ขีดจำกัดขนาด และกฎการกำหนดค่าเฉพาะของตนเอง

ประเภทข้อมูลใน PL/SQL มีอะไรบ้าง?
ประเภทข้อมูล ใน PL/SQL ให้กำหนดวิธีการจัดเก็บ จัดการ และประมวลผลข้อมูล Oracle ระหว่างการจัดเก็บและการประมวลผล ประเภทข้อมูลจะเชื่อมโยงกับรูปแบบการจัดเก็บเฉพาะและข้อจำกัดช่วงค่า ใน Oracleแต่ละค่าหรือค่าคงที่ จะถูกกำหนดชนิดข้อมูลให้
ความแตกต่างที่สำคัญระหว่าง PL/SQL และ SQL ความแตกต่างระหว่างชนิดข้อมูลใน SQL กับ PL/SQL คือ ชนิดข้อมูลใน SQL จำกัดอยู่เฉพาะคอลัมน์ในตาราง ในขณะที่ชนิดข้อมูลใน PL/SQL ใช้ใน... บล็อก PL/SQLเราจะอธิบายเพิ่มเติมเกี่ยวกับเรื่องนี้ในบทช่วยสอนในภายหลัง
ต่อไปนี้เป็นแผนภาพแสดงความแตกต่างต่างๆ Oracle ประเภทข้อมูล PL/SQL:

ประเภทข้อมูล PL/SQL CHARACTER
ชนิดข้อมูลนี้จัดเก็บตัวอักษรและตัวเลขในรูปแบบสตริง ค่าตัวอักษรควรอยู่ภายในเครื่องหมายอัญประกาศเดี่ยวเสมอเมื่อกำหนดค่าให้กับชนิดข้อมูล CHARACTER
ชนิดข้อมูลอักขระนี้แบ่งประเภทเพิ่มเติมได้ดังนี้:
- ชนิดข้อมูล CHAR (ขนาดสตริงคงที่)
- ชนิดข้อมูล VARCHAR2 (ขนาดสตริงแปรผันได้)
- ชนิดข้อมูล VARCHAR
- NCHAR (ขนาดสตริงคงที่ดั้งเดิม)
- NVARCHAR2 (ขนาดสตริงตัวแปรดั้งเดิม)
- ยาวและยาว
| ประเภทข้อมูล | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| ชาร์ | ชนิดข้อมูลนี้เก็บค่าสตริง และขนาดของสตริงจะคงที่ ณ เวลาที่ประกาศ ตัวแปร.
|
grade CHAR; manager CHAR (10):= 'guru99'; คำอธิบายไวยากรณ์:
|
| วาร์ชาร์2 | ชนิดข้อมูลนี้ใช้เก็บสตริง แต่ความยาวไม่ตายตัว
|
manager VARCHAR2(10) := 'guru99'; คำอธิบายไวยากรณ์:
|
| วาร์ชาร์ | ซึ่งตรงกันกับประเภทข้อมูล VARCHAR2
|
manager VARCHAR(10) := 'guru99'; คำอธิบายไวยากรณ์:
|
| กช | ชนิดข้อมูลนี้เหมือนกับ CHAR แต่ชุดอักขระเป็นชุดอักขระประจำชาติ
|
native NCHAR(10);
คำอธิบายไวยากรณ์:
|
| นาวาร์ชาร์2 | ชนิดข้อมูลนี้เหมือนกับ VARCHAR2 แต่ชุดอักขระเป็นชุดอักขระประจำชาติ
|
Native_var NVARCHAR2(10):= 'guru99'; คำอธิบายไวยากรณ์:
|
| ยาวและยาว | ประเภทข้อมูลนี้ใช้สำหรับจัดเก็บข้อความขนาดใหญ่หรือข้อมูลดิบที่มีขนาดสูงสุด 2 GB
|
Large_text LONG; Large_raw LONG RAW; คำอธิบายไวยากรณ์:
หมายเหตุ ไม่แนะนำให้ใช้ชนิดข้อมูล LONG Oracleควรเลือกใช้ชนิดข้อมูล LOB แทน |
ประเภทข้อมูล PL/SQL NUMBER
ชนิดข้อมูลนี้ใช้เก็บตัวเลขทศนิยมหรือตัวเลขคงที่ที่มีความแม่นยำสูงสุด 38 หลัก ใช้สำหรับทำงานกับฟิลด์ที่มีเฉพาะข้อมูลตัวเลขเท่านั้น สามารถประกาศตัวแปรได้ทั้งแบบระบุความแม่นยำและจำนวนหลักทศนิยม หรือไม่ระบุก็ได้ ไม่จำเป็นต้องใส่เครื่องหมายคำพูดเมื่อกำหนดค่าให้กับตัวแปร
A NUMBER(8,2); B NUMBER(8); C NUMBER;
คำอธิบายไวยากรณ์:
- การประกาศครั้งแรกเป็นการประกาศตัวแปร 'A' ซึ่งเป็นชนิดข้อมูลตัวเลข โดยมีความแม่นยำโดยรวม 8 ตำแหน่ง และทศนิยม 2 ตำแหน่ง
- ส่วนที่สองประกาศตัวแปร 'B' ซึ่งเป็นชนิดข้อมูลตัวเลขที่มีความแม่นยำสูงสุด 8 หลัก และไม่มีทศนิยม
- แบบที่สามเป็นแบบทั่วไปที่สุด โดยประกาศชนิดข้อมูลตัวเลขเป็น 'C' โดยไม่มีข้อจำกัดเรื่องความแม่นยำหรือจำนวนทศนิยม สามารถรับค่าได้สูงสุดถึง 38 หลัก
ประเภทข้อมูล PL/SQL BOOLEAN
ชนิดข้อมูลนี้เก็บค่าตรรกะ Oracle ชนิดข้อมูลบูลีน (Boolean) แทนค่าจริง (TRUE) หรือเท็จ (FALSE) และใช้เป็นหลักในคำสั่งเงื่อนไข ไม่จำเป็นต้องใส่เครื่องหมายคำพูดเมื่อกำหนดค่าให้กับชนิดข้อมูลนี้
Var1 BOOLEAN;
คำอธิบายไวยากรณ์:
- ตัวแปร 'Var1' ถูกประกาศเป็นชนิดข้อมูล BOOLEAN ผลลัพธ์จะเป็นจริงหรือเท็จขึ้นอยู่กับเงื่อนไขที่ตั้งไว้
ประเภทข้อมูล PL/SQL DATE
ชนิดข้อมูลนี้เก็บค่าในรูปแบบวันที่ ได้แก่ วัน เดือน และปี เมื่อใดก็ตามที่กำหนดตัวแปรด้วยชนิดข้อมูล DATE ตัวแปรนั้นจะสามารถเก็บข้อมูลเวลาได้ โดยค่าเริ่มต้นจะตั้งเป็น 12:00:00 หากไม่ได้ระบุไว้ ค่าที่กำหนดค่าจะต้องอยู่ในเครื่องหมายอัญประกาศ
มาตรฐาน Oracle รูปแบบเวลาสำหรับการรับเข้าและส่งออกคือ 'วัน-จันทร์-ปี' ซึ่งตั้งค่าไว้ใน NLS_PARAMETERS (NLS_DATE_FORMAT) ที่ระดับเซสชัน
newyear DATE:= '01-JAN-2015'; current_date DATE:= SYSDATE;
คำอธิบายไวยากรณ์:
- ตัวแปร 'newyear' ถูกประกาศเป็นชนิดข้อมูล DATE และกำหนดค่าเป็น 1 มกราคม 2015
- การประกาศครั้งที่สองประกาศตัวแปร 'current_date' เป็นชนิดข้อมูล DATE และกำหนดค่าเป็นวันที่ปัจจุบันของระบบ
- ตัวแปรทั้งสองตัวมีข้อมูลเกี่ยวกับเวลา
ชนิดข้อมูล PL/SQL LOB
ประเภทข้อมูลนี้ส่วนใหญ่ใช้สำหรับจัดเก็บและประมวลผลข้อมูลขนาดใหญ่ที่ไม่มีโครงสร้าง เช่น รูปภาพและไฟล์มัลติมีเดีย Oracle นิยมใช้ชนิดข้อมูล LOB มากกว่า LONG เนื่องจากมีความยืดหยุ่นมากกว่า ข้อดีหลักของ LOB เมื่อเทียบกับ LONG คือ:
- ตารางจำกัดให้มีคอลัมน์ประเภท LONG ได้เพียงคอลัมน์เดียว ในขณะที่ไม่มีข้อจำกัดเกี่ยวกับจำนวนคอลัมน์ประเภท LOB
- เครื่องมือเชื่อมต่อข้อมูลยอมรับ LOB ในระหว่างการจำลองข้อมูล แต่จะละเว้นคอลัมน์ LONG ซึ่งต้องจำลองข้อมูลด้วยตนเอง
- คอลัมน์แบบ LONG สามารถจัดเก็บข้อมูลได้สูงสุด 2 GB ในขณะที่ LOB สามารถจัดเก็บข้อมูลได้สูงสุด 128 TB
- Oracle มีการปรับปรุงประเภทข้อมูล LOB อย่างต่อเนื่องในแต่ละเวอร์ชัน ในขณะที่ประเภทข้อมูล LONG แทบไม่มีการเปลี่ยนแปลง
ดังนั้นจึงควรใช้ชนิดข้อมูล LOB แทน LONG เสมอ ชนิดข้อมูล LOB ต่างๆ ด้านล่างนี้สามารถจัดเก็บข้อมูลได้สูงสุดถึง 128 เทราไบต์:
- หยด
- CLOB และ NCLOB
- บีไฟล์
| ประเภทข้อมูล | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| หยด | ชนิดข้อมูลนี้จัดเก็บข้อมูล LOB ในรูปแบบไฟล์ไบนารีได้สูงสุดถึง 128 TB โดยไม่จัดเก็บข้อมูลตามรายละเอียดของชุดอักขระ ดังนั้นจึงสามารถจัดเก็บข้อมูลที่ไม่เป็นระเบียบ เช่น วัตถุมัลติมีเดียและรูปภาพได้ |
Binary_data BLOB;
คำอธิบายไวยากรณ์:
|
| CLOB และ NCLOB | CLOB จัดเก็บข้อมูล LOB ในชุดอักขระ ในขณะที่ NCLOB จัดเก็บข้อมูลในชุดอักขระดั้งเดิม เนื่องจากใช้การจัดเก็บข้อมูลแบบอิงตามชุดอักขระ จึงไม่สามารถจัดเก็บข้อมูลประเภทมัลติมีเดียหรือรูปภาพได้ ขนาดสูงสุดคือ 128 TB |
Charac_data CLOB;
คำอธิบายไวยากรณ์:
|
| บีไฟล์ |
|
