Khối PL/ SQL: CẤU TRÚC, Cú pháp, Ví dụ ẩn danh

Khối PL/SQL là gì?

Trong PL/SQL, mã không được thực thi ở định dạng một dòng mà luôn được thực thi bằng cách nhóm mã thành một phần tử duy nhất gọi là Khối. Trong hướng dẫn này, bạn sẽ tìm hiểu về các khối này.

Các khối chứa cả PL/SQL cũng như lệnh SQL. Tất cả các lệnh này sẽ được thực thi toàn bộ thay vì thực hiện từng lệnh một.

Cấu trúc khối

Các khối PL/SQL có cấu trúc được xác định trước trong đó mã sẽ được nhóm lại. Dưới đây là các phần khác nhau của khối PL/SQL.

  1. Phần khai báo
  2. Phần thực thi
  3. Phần xử lý ngoại lệ

Hình ảnh bên dưới minh họa khối PL/SQL khác nhau và thứ tự các phần của chúng.

Cấu trúc khối

Phần khai báo

Đây là phần đầu tiên của khối PL/SQL. Phần này là phần tùy chọn. Đây là phần khai báo các biến, con trỏ, ngoại lệ, chương trình con, lệnh pragma và tập hợp cần thiết trong khối. Dưới đây là một số đặc điểm khác của phần này.

  • Phần cụ thể này là tùy chọn và có thể bỏ qua nếu không cần khai báo.
  • Đây phải là phần đầu tiên trong khối PL/SQL, nếu có.
  • Phần này bắt đầu bằng từ khóa 'Khai báo' cho trình kích hoạt và khối ẩn danh. Đối với các chương trình con khác, từ khóa này sẽ không xuất hiện. Thay vào đó, phần sau định nghĩa tên chương trình con đánh dấu phần khai báo.
  • Phần này phải luôn được theo sau bởi phần thực hiện.

Phần thực thi

Phần thực thi là phần chính và bắt buộc thực sự thực thi mã được viết bên trong nó. Kể từ khi PL / SQL yêu cầu các câu lệnh thực thi từ khối này không thể là một khối trống, tức là nó phải có ít nhất một dòng mã thực thi hợp lệ trong đó. Dưới đây là một số đặc điểm khác của phần này.

  • Điều này có thể chứa cả mã PL/SQL và mã SQL.
  • Khối này có thể chứa một hoặc nhiều khối bên trong nó dưới dạng khối lồng nhau.
  • Phần này bắt đầu bằng từ khóa 'BEGIN'.
  • Phần này phải được theo sau bởi phần 'END' hoặc phần Xử lý ngoại lệ (nếu có)

Phần xử lý ngoại lệ

Ngoại lệ là không thể tránh khỏi trong chương trình xảy ra trong thời gian chạy và để xử lý việc này Oracle đã cung cấp phần xử lý ngoại lệ theo khối. Phần này cũng có thể chứa các câu lệnh PL/SQL. Đây là phần tùy chọn của khối PL/SQL.

  • Đây là phần xử lý ngoại lệ được nêu ra trong khối thực thi.
  • Phần này là phần cuối cùng của khối PL/SQL.
  • Điều khiển từ phần này không bao giờ có thể quay trở lại khối thực thi.
  • Phần này bắt đầu bằng từ khóa 'EXCEPTION'.
  • Phần này phải luôn được theo sau bởi từ khóa 'END'.

Từ khóa 'END' đánh dấu sự kết thúc của khối PL/SQL.

Cú pháp khối PL/SQL

Dưới đây là cú pháp của cấu trúc khối PL/SQL.

Cú pháp khối PL/SQL

DECLARE --optional
    <declarations>

BEGIN   --mandatory
    <executable statements. At least one executable statement is mandatory>

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Lưu ý: Một khối phải luôn được theo sau bởi '/' để gửi thông tin đến trình biên dịch về phần cuối của khối.

Các loại khối PL/SQL

Các khối PL/SQL chủ yếu có hai loại.

  1. Khối ẩn danh
  2. Khối được đặt tên

Khối ẩn danh

Các khối ẩn danh là các khối PL/SQL không được gán bất kỳ tên nào cho chúng. Chúng cần được tạo và sử dụng trong cùng một phiên vì chúng sẽ không được lưu trữ trong máy chủ dưới dạng đối tượng cơ sở dữ liệu.

Vì chúng không cần lưu trữ trong cơ sở dữ liệu nên chúng không cần các bước biên dịch. Chúng được viết và thực thi trực tiếp, việc biên dịch và thực thi diễn ra trong một quy trình duy nhất.

Dưới đây là một số đặc điểm khác của khối Ẩn danh.

  • Các khối này không có bất kỳ tên tham chiếu nào được chỉ định cho chúng.
  • Các khối này bắt đầu bằng từ khóa 'Khai báo' hoặc 'BEGIN'.
  • Vì các khối này không có tên tham chiếu nào nên không thể lưu trữ chúng cho mục đích sau này. Chúng sẽ được tạo và thực thi trong cùng một phiên.
  • Họ có thể gọi các khối được đặt tên khác, nhưng không thể gọi đến khối ẩn danh vì nó không có bất kỳ tham chiếu nào.
  • Nó có thể có khối lồng nhau trong đó có thể được đặt tên hoặc ẩn danh. Nó cũng có thể được lồng vào bất kỳ khối nào.
  • Các khối này có thể có cả ba phần của khối, trong đó phần thực thi là bắt buộc, hai phần còn lại là tùy chọn.

Khối được đặt tên

Các khối được đặt tên có một tên cụ thể và duy nhất cho chúng. Chúng được lưu trữ dưới dạng đối tượng cơ sở dữ liệu trong máy chủ. Vì chúng có sẵn dưới dạng đối tượng cơ sở dữ liệu nên chúng có thể được tham chiếu hoặc sử dụng miễn là nó có trên máy chủ. Quá trình biên dịch các khối được đặt tên diễn ra riêng biệt trong khi tạo chúng dưới dạng đối tượng cơ sở dữ liệu.

Dưới đây là một số đặc điểm khác của khối được đặt tên.

  • Các khối này có thể được gọi từ các khối khác.
  • Cấu trúc khối giống như khối ẩn danh, ngoại trừ việc nó sẽ không bao giờ bắt đầu bằng từ khóa 'Khai báo'. Thay vào đó, nó sẽ bắt đầu bằng từ khóa 'CREATE' để hướng dẫn trình biên dịch tạo nó làm đối tượng cơ sở dữ liệu.
  • Các khối này có thể được lồng trong các khối khác. Nó cũng có thể chứa các khối lồng nhau.
  • Các khối được đặt tên về cơ bản có hai loại:
  1. Thủ tục
  2. Chức năng

Chúng ta sẽ tìm hiểu thêm về các khối được đặt tên này trong chủ đề “Quy trình” và “Chức năng” ở phần hướng dẫn sau.

Tổng kết

Sau hướng dẫn này, bạn sẽ biết về khối PL/SQL và các loại khối, các phần khác nhau của khối và cách sử dụng của chúng. Mô tả chi tiết về các khối PL/SQL được đặt tên sẽ được đề cập trong hướng dẫn sau.