Oracle ประเภทข้อมูล PL/SQL: บูลีน ตัวเลข วันที่ [ตัวอย่าง]

ประเภทข้อมูล PL/SQL คืออะไร

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

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

ต่อไปนี้เป็นแผนภาพที่แตกต่างกัน Oracle ประเภทข้อมูล PL/SQL:

ประเภทข้อมูล PL/SQL
ประเภทข้อมูลที่แตกต่างกันใน PL/SQL

ประเภทข้อมูล PL/SQL CHARACTER

โดยทั่วไปประเภทข้อมูลนี้จะจัดเก็บอักขระตัวอักษรและตัวเลขในรูปแบบสตริง

ค่าตัวอักษรควรอยู่ในเครื่องหมายคำพูดเดี่ยวเสมอขณะกำหนดให้กับประเภทข้อมูล CHARACTER

ชนิดข้อมูลอักขระนี้แบ่งประเภทเพิ่มเติมได้ดังนี้:

  • ชนิดข้อมูล CHAR (ขนาดสตริงคงที่)
  • VARCHAR2 ชนิดข้อมูล (ขนาดสตริงตัวแปร)
  • ประเภทข้อมูล VARCHAR
  • NCHAR (ขนาดสตริงคงที่ดั้งเดิม)
  • NVARCHAR2 (ขนาดสตริงตัวแปรดั้งเดิม)
  • ยาวและยาว
ประเภทข้อมูล Descriptไอออน วากยสัมพันธ์
ชาร์ ชนิดข้อมูลนี้เก็บค่าสตริง และขนาดของสตริงได้รับการแก้ไข ณ เวลาที่ประกาศ ตัวแปร.

  • Oracle จะถูกเติมช่องว่างให้กับตัวแปรหากตัวแปรไม่ได้ครอบครองขนาดทั้งหมดที่ได้รับการประกาศไว้ ดังนั้น Oracle จะจัดสรรหน่วยความจำสำหรับขนาดที่ประกาศแม้ว่าตัวแปรจะไม่ได้ครอบครองเต็มก็ตาม
  • ข้อจำกัดขนาดสำหรับชนิดข้อมูลนี้คือ 1-2000 ไบต์
  • ประเภทข้อมูล CHAR มีความเหมาะสมมากกว่าที่จะใช้เมื่อจะจัดการขนาดของข้อมูลที่กำหนดไว้
grade CHAR;
manager CHAR (10):= 'guru99';

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศแรกประกาศตัวแปร 'เกรด' ของชนิดข้อมูล CHAR ที่มีขนาดสูงสุด 1 ไบต์ (ค่าเริ่มต้น)
  • คำสั่งประกาศที่สองประกาศตัวแปร 'ผู้จัดการ' ของประเภทข้อมูล CHAR ที่มีขนาดสูงสุด 10 และกำหนดค่า 'guru99' ซึ่งเป็น 6 ไบต์ Oracle จะจัดสรรหน่วยความจำ 10 ไบต์แทนที่จะเป็น 6 ไบต์ในกรณีนี้
วาร์ชาร์2 ชนิดข้อมูลนี้เก็บสตริง แต่ความยาวของสตริงไม่คงที่

  • ข้อจำกัดขนาดสำหรับชนิดข้อมูลนี้คือ 1-4000 ไบต์สำหรับขนาดคอลัมน์ตาราง และ 1-32767 ไบต์สำหรับตัวแปร
  • ขนาดถูกกำหนดไว้สำหรับแต่ละตัวแปรในเวลาที่มีการประกาศตัวแปร
  • แต่ Oracle จะจัดสรรหน่วยความจำหลังจากกำหนดตัวแปรแล้วเท่านั้น เช่น Oracle จะพิจารณาเฉพาะความยาวที่แท้จริงของสตริงที่เก็บอยู่ในตัวแปรสำหรับการจัดสรรหน่วยความจำมากกว่าขนาดที่กำหนดให้กับตัวแปรในส่วนการประกาศ
  • เป็นการดีเสมอที่จะใช้ VARCHAR2 แทนประเภทข้อมูล CHAR เพื่อเพิ่มประสิทธิภาพการใช้งานหน่วยความจำ
manager VARCHAR2(10) := ‘guru99';

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศข้างต้นประกาศตัวแปร 'ผู้จัดการ' ของประเภทข้อมูล VARCHAR2 ที่มีขนาดสูงสุด 10 และกำหนดค่า 'guru99' ซึ่งเป็น 6 ไบต์ Oracle จะจัดสรรหน่วยความจำเพียง 6 ไบต์ในกรณีนี้
วาร์ชาร์ ซึ่งตรงกันกับประเภทข้อมูล VARCHAR2

  • แนวทางปฏิบัติที่ดีคือการใช้ VARCHAR2 แทน VARCHAR เพื่อหลีกเลี่ยงการเปลี่ยนแปลงพฤติกรรม
manager VARCHAR(10) := ‘guru99';

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศข้างต้นประกาศตัวแปร 'ผู้จัดการ' ของประเภทข้อมูล VARCHAR ที่มีขนาดสูงสุด 10 และกำหนดค่า 'guru99' ซึ่งเป็น 6 ไบต์ Oracle จะจัดสรรหน่วยความจำเพียง 6 ไบต์ในกรณีนี้ (คล้ายกับ VARCHAR2)
กช ชนิดข้อมูลนี้เหมือนกับชนิดข้อมูล CHAR แต่ชุดอักขระจะเป็นของชุดอักขระประจำชาติ

  • ชุดอักขระนี้สามารถกำหนดได้สำหรับเซสชันโดยใช้ NLS_PARAMETERS
  • ชุดอักขระอาจเป็น UTF16 หรือ UTF8 ก็ได้
  • ข้อจำกัดด้านขนาดคือ 1-2000 ไบต์
native NCHAR(10);

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศด้านบนประกาศตัวแปร 'ดั้งเดิม' ของชนิดข้อมูล NCHAR โดยมีขนาดสูงสุด 10
  • ความยาวของตัวแปรนี้ขึ้นอยู่กับ (จำนวนความยาว) ต่อไบต์ตามที่กำหนดไว้ในชุดอักขระ
นาวาร์ชาร์2 ชนิดข้อมูลนี้เหมือนกับชนิดข้อมูล VARCHAR2 แต่ชุดอักขระจะเป็นชุดอักขระประจำชาติ

  • ชุดอักขระนี้สามารถกำหนดได้สำหรับเซสชันโดยใช้ NLS_PARAMETERS
  • ชุดอักขระอาจเป็น UTF16 หรือ UTF8 ก็ได้
  • ข้อจำกัดด้านขนาดคือ 1-4000 ไบต์
Native var NVARCHAR2(10):='guru99';

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศด้านบนประกาศตัวแปร 'Native_var' ของชนิดข้อมูล NVARCHAR2 โดยมีขนาดสูงสุด 10
ยาวและยาว ประเภทข้อมูลนี้ใช้เพื่อจัดเก็บข้อความขนาดใหญ่หรือข้อมูลดิบได้สูงสุดถึงขนาดสูงสุด 2GB

  • สิ่งเหล่านี้ส่วนใหญ่จะใช้ในพจนานุกรมข้อมูล
  • ประเภทข้อมูล LONG ใช้เพื่อจัดเก็บข้อมูลชุดอักขระ ในขณะที่ LONG RAW ใช้เพื่อจัดเก็บข้อมูลในรูปแบบไบนารี
  • ชนิดข้อมูล RAW แบบยาวยอมรับวัตถุสื่อ รูปภาพ ฯลฯ ในขณะที่ LONG ใช้งานได้เฉพาะกับข้อมูลที่สามารถจัดเก็บโดยใช้ชุดอักขระเท่านั้น
Large_text LONG;
Large_raw LONG RAW;

คำอธิบายไวยากรณ์:

  • คำสั่งประกาศด้านบนประกาศตัวแปร 'Large_text' เป็นชนิดข้อมูล LONG และ 'Large_raw' เป็นชนิดข้อมูล LONG RAW

หมายเหตุ ไม่แนะนำให้ใช้ชนิดข้อมูลแบบยาว 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 ประเภทข้อมูลบูลีนแสดงถึง TRUE หรือ FALSE และส่วนใหญ่จะใช้ในคำสั่งแบบมีเงื่อนไข ค่าไม่จำเป็นต้องอยู่ภายในเครื่องหมายคำพูดขณะกำหนดประเภทข้อมูลนี้

Var1 BOOLEAN;

คำอธิบายไวยากรณ์:

  • ข้างต้น ตัวแปร 'Var1' ได้รับการประกาศเป็นประเภทข้อมูล BOOLEAN ผลลัพธ์ของโค้ดจะเป็นจริงหรือเท็จตามเงื่อนไขที่ตั้งไว้

ประเภทข้อมูล PL/SQL DATE

ชนิดข้อมูลนี้จะจัดเก็บค่าในรูปแบบวันที่ เช่น วันที่ เดือน และปี เมื่อใดก็ตามที่ตัวแปรถูกกำหนดด้วยประเภทข้อมูล DATE พร้อมด้วยวันที่ ตัวแปรนั้นสามารถเก็บข้อมูลเวลาได้ และตามค่าเริ่มต้นข้อมูลเวลาจะถูกตั้งค่าเป็น 12:00:00 หากไม่ได้ระบุไว้ ค่าต้องอยู่ภายในเครื่องหมายคำพูดขณะกำหนดประเภทข้อมูลนี้

มาตรฐาน Oracle รูปแบบเวลาสำหรับอินพุตและเอาต์พุตคือ 'DD-MON-YY' และตั้งค่าอีกครั้งที่ NLS_PARAMETERS (NLS_DATE_FORMAT) ที่ระดับเซสชัน

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

คำอธิบายไวยากรณ์:

  • ข้างต้น ตัวแปร 'ปีใหม่' ได้รับการประกาศเป็นประเภทข้อมูล DATE และกำหนดค่าเป็น 1 มกราคมst, 2015 วันที่.
  • การประกาศครั้งที่สองประกาศตัวแปร current_date เป็นชนิดข้อมูล DATE และกำหนดค่าด้วยวันที่ปัจจุบันของระบบ
  • ตัวแปรทั้งสองนี้เก็บข้อมูลเวลา

ชนิดข้อมูล PL/SQL LOB

ประเภทข้อมูลนี้ส่วนใหญ่จะใช้เพื่อจัดเก็บและจัดการบล็อกข้อมูลที่ไม่มีโครงสร้างจำนวนมาก เช่น รูปภาพ ไฟล์มัลติมีเดีย ฯลฯ Oracle ชอบ LOB แทนที่จะเป็นชนิดข้อมูล LONG เนื่องจากมีความยืดหยุ่นมากกว่าชนิดข้อมูล LONG ด้านล่างนี้คือข้อดีหลักบางประการของ LOB เหนือชนิดข้อมูล LONG

  • จำนวนคอลัมน์ในตารางที่มีชนิดข้อมูล LONG จำกัดอยู่ที่ 1 ในขณะที่ตารางไม่มีข้อจำกัดเกี่ยวกับจำนวนคอลัมน์ที่มีชนิดข้อมูล LOB
  • เครื่องมืออินเทอร์เฟซข้อมูลยอมรับประเภทข้อมูล LOB ของตารางในระหว่างการจำลองข้อมูล แต่จะละเว้นคอลัมน์ LONG ของตาราง คอลัมน์ยาวเหล่านี้จำเป็นต้องจำลองแบบด้วยตนเอง
  • ขนาดของคอลัมน์ LONG คือ 2GB ในขณะที่ LOB สามารถจัดเก็บได้สูงสุด 128 TB
  • Oracle กำลังปรับปรุงประเภทข้อมูล LOB ในแต่ละรีลีสอย่างต่อเนื่องตามความต้องการที่ทันสมัย ​​ในขณะที่ประเภทข้อมูล LONG นั้นคงที่และไม่ได้รับการอัปเดตมากนัก

ดังนั้นควรใช้ประเภทข้อมูล LOB แทนประเภทข้อมูล LONG เสมอ ต่อไปนี้คือประเภทข้อมูล LOB ต่างๆ ซึ่งสามารถเก็บข้อมูลได้สูงสุดถึง 128 เทราไบต์

  1. หยด
  2. CLOB และ NCLOB
  3. บีไฟล์
ประเภทข้อมูล Descriptไอออน วากยสัมพันธ์
หยด ประเภทข้อมูลนี้จะจัดเก็บข้อมูล LOB ในรูปแบบไฟล์ไบนารีที่มีขนาดสูงสุด 128 TB ซึ่งจะไม่จัดเก็บข้อมูลตามรายละเอียดชุดอักขระ ดังนั้นจึงสามารถจัดเก็บข้อมูลที่ไม่มีโครงสร้าง เช่น อ็อบเจกต์มัลติมีเดีย รูปภาพ เป็นต้น
Binary_data BLOB;

คำอธิบายไวยากรณ์:

  • ในข้างต้น ตัวแปร 'Binary_data' ได้รับการประกาศเป็น BLOB
CLOB และ NCLOB ประเภทข้อมูล CLOB จะเก็บข้อมูล LOB ไว้ในชุดอักขระ ในขณะที่ NCLOB จะเก็บข้อมูลไว้ในชุดอักขระดั้งเดิม เนื่องจากชนิดข้อมูลเหล่านี้ใช้พื้นที่จัดเก็บตามชุดอักขระ จึงไม่สามารถจัดเก็บข้อมูล เช่น มัลติมีเดีย รูปภาพ ฯลฯ ที่ไม่สามารถใส่ลงในสตริงอักขระได้ ขนาดสูงสุดของประเภทข้อมูลเหล่านี้คือ 128 TB
Charac_data CLOB;

คำอธิบายไวยากรณ์:

  • ในข้างต้น ตัวแปร 'Charac_data' ได้รับการประกาศเป็นประเภทข้อมูล CLOB
บีไฟล์
  • BFILE เป็นประเภทข้อมูลที่จัดเก็บข้อมูลรูปแบบไบนารีที่ไม่มีโครงสร้างภายนอกฐานข้อมูลเป็นไฟล์ระบบปฏิบัติการ
  • ขนาดของ BFILE ถูกจำกัดสำหรับระบบปฏิบัติการและเป็นไฟล์แบบอ่านอย่างเดียวและไม่สามารถแก้ไขได้

สรุป

เราได้ครอบคลุมประเภทข้อมูลง่ายๆ ต่างๆ ที่มีอยู่แล้ว PL / SQL พร้อมกับรูปแบบไวยากรณ์ของข้อมูล เราจะเรียนรู้เกี่ยวกับประเภทข้อมูลที่ซับซ้อนในหัวข้อต่อไป