Phần khóa học

PL/SQL

Biến trong PL/SQL

Một biến là một tên có ý nghĩa tạo điều kiện cho lập trình viên lưu trữ dữ liệu tạm thời trong quá trình thực thi mã. Nó giúp bạn thao tác dữ liệu trong các chương trình PL / SQL. Nó không là gì ngoại trừ một cái tên được đặt cho một khu vực lưu trữ. Mỗi biến trong PL / SQL có một kiểu dữ liệu cụ thể xác định kích thước và cách bố trí bộ nhớ của biến.

Một biến không được vượt quá 30 ký tự. Chữ cái của nó tùy chọn theo sau bởi các chữ cái khác, ký hiệu đô la, chữ số, gạch dưới, v.v.

1. Nó cần phải khai báo biến trước trong phần khai báo của một khối PL / SQL trước khi sử dụng nó.

2. Theo mặc định, tên biến không phân biệt chữ hoa chữ thường. Từ khóa PL / SQL dành riêng không thể được sử dụng làm tên biến.

Cách khai báo biến trong PL / SQL

Bạn phải khai báo biến PL / SQL trong phần khai báo hoặc trong một gói dưới dạng biến toàn cục. Sau khi khai báo, PL / SQL cấp phát bộ nhớ cho giá trị của biến và vị trí lưu trữ được xác định bằng tên biến.

Cú pháp khai báo biến:

Sau đây là cú pháp để khai báo biến:

variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value] 

Ở đây, tên_biến là một định danh hợp lệ trong PL / SQL và kiểu dữ liệu phải là kiểu dữ liệu PL / SQL hợp lệ. Kiểu dữ liệu có giới hạn kích thước, tỷ lệ hoặc độ chính xác được gọi là khai báo có ràng buộc. Khai báo bị ràng buộc cần ít bộ nhớ hơn so với khai báo không bị ràng buộc.

Quy tắc đặt tên cho các biến PL / SQL

Biến trong PL / SQL phải tuân theo một số quy tắc đặt tên giống như các ngôn ngữ lập trình khác.

  • Tên_biến không được vượt quá 30 ký tự.
  • Tên của biến phải bắt đầu bằng ký tự ASCII. PL / SQL không phân biệt chữ hoa chữ thường nên nó có thể là chữ thường hoặc chữ hoa. Ví dụ: v_data và V_DATA tham chiếu đến các biến giống nhau.
  • Bạn nên làm cho biến của bạn dễ đọc và dễ hiểu, sau ký tự đầu tiên, nó có thể là bất kỳ số nào, dấu gạch dưới (_) hoặc dấu đô la ($).
  • NOT NULL là một đặc tả tùy chọn trên biến.

Khởi tạo các biến trong PL / SQL

Bất cứ khi nào bạn khai báo một biến, PL / SQL xác định một giá trị mặc định NULL cho nó. Nếu bạn muốn khởi tạo một biến có giá trị khác với giá trị NULL, bạn có thể thực hiện việc này trong khi khai báo, bằng cách sử dụng bất kỳ phương pháp nào sau đây.

  • Từ khóa DEFAULT
  • Toán tử gán
  1. counter binary_integer := 0;  
    greetings varchar2(20) DEFAULT 'Hello choivahoc';  

Bạn cũng có thể chỉ định ràng buộc NOT NULL để tránh giá trị NULL. Nếu bạn chỉ định ràng buộc NOT NULL, bạn phải gán giá trị ban đầu cho biến đó.

Bạn phải có một kỹ năng lập trình tốt để khởi tạo biến đúng cách, nếu không, đôi khi chương trình sẽ tạo ra kết quả không mong muốn.

Ví dụ về biến bắt đầu

Hãy lấy một ví dụ đơn giản để giải thích rõ:

  1. DECLARE  
       a integer := 30;  
       b integer := 40;  
       c integer;  
       f real;  
    BEGIN  
       c := a + b;  
       dbms_output.put_line('Value of c: ' || c);  
       f := 100.0/3.0;  
       dbms_output.put_line('Value of f: ' || f);  
    END;  

Sau khi thực hiện, điều này sẽ tạo ra kết quả sau:

  1. Value of c: 70  
    Value of f: 33.333333333333333333  
      
    PL/SQL procedure successfully completed

Phạm vi biến trong PL / SQL:

PL / SQL cho phép lồng các khối. Một khối chương trình có thể chứa một khối bên trong khác. Nếu bạn khai báo một biến trong một khối bên trong, thì nó không thể truy cập vào một khối bên ngoài. Có hai loại phạm vi thay đổi:

  • Biến cục bộ: Các biến cục bộ là các biến khối bên trong mà khối bên ngoài không thể truy cập được.
  • Biến toàn cục: Các biến toàn cục được khai báo trong khối ngoài cùng.

Ví dụ về biến cục bộ và toàn cục

Hãy lấy một ví dụ để cho thấy việc sử dụng các biến Local và Global ở dạng đơn giản:

  1. DECLARE  
     -- Global variables   
       num1 number := 95;   
       num2 number := 85;   
    BEGIN   
       dbms_output.put_line('Outer Variable num1: ' || num1);  
       dbms_output.put_line('Outer Variable num2: ' || num2);  
       DECLARE   
          -- Local variables  
          num1 number := 195;   
          num2 number := 185;   
       BEGIN   
          dbms_output.put_line('Inner Variable num1: ' || num1);  
          dbms_output.put_line('Inner Variable num2: ' || num2);  
       END;   
    END;  
    /  

Sau khi thực hiện, điều này sẽ tạo ra kết quả sau:

  1. Outer Variable num1: 95  
    Outer Variable num2: 85  
    Inner Variable num1: 195  
    Inner Variable num2: 185  
      
    PL/SQL procedure successfully completed.