Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kí hiệu gọi cho chương trình con PL / SQL trong cơ sở dữ liệu Oracle

Vì một số bài hướng dẫn trước đây là về Chương trình con PL / SQL như Hàm PL / SQL và Thủ tục lưu trữ, do đó, bắt buộc phải nói về các ký hiệu gọi của chúng. Việc học các khái niệm về Chương trình con PL / SQL sẽ không được coi là hoàn chỉnh cho đến khi chúng ta cũng học được các ký hiệu gọi của chúng.

Kí hiệu gọi cho chương trình con PL / SQL là gì?

Gọi ký hiệu là một cách cung cấp giá trị cho các tham số của chương trình con như hàm PL / SQL hoặc một thủ tục được lưu trữ.

Các loại ký hiệu gọi cho chương trình con

Trong Oracle PL / SQL có 3 kiểu ký hiệu gọi. Đây là:

  1. Ký hiệu Vị trí
  2. Ký hiệu được đặt tên và
  3. Ký hiệu gọi hỗn hợp

Ký hiệu cuộc gọi định vị

Ký hiệu vị trí là ký hiệu gọi phổ biến nhất mà bạn có thể thấy trong hầu hết mọi ngôn ngữ lập trình máy tính. Trong ký hiệu vị trí, chúng ta phải xác định giá trị cho mỗi tham số hình thức một cách tuần tự. Điều này có nghĩa là bạn phải cung cấp các giá trị cho các tham số chính thức theo thứ tự giống như chúng được khai báo trong thủ tục hoặc trong hàm.

Trong ký hiệu vị trí, kiểu dữ liệu và vị trí của tham số thực phải khớp với tham số chính thức.

Đọc đề xuất:Tham số thực tế so với Tham số chính thức

Ví dụ:Ký hiệu vị trí để gọi các chương trình con PL / SQL.

CREATE OR REPLACE PROCEDURE emp_sal
(dep_id NUMBER, sal_raise NUMBER) 
IS
BEGIN
  	UPDATE employees 
SET salary = salary * sal_raise 
WHERE department_id = dep_id;
  
DBMS_OUTPUT.PUT_LINE ('salary updated successfully');
END;
 /

Đây là ví dụ tương tự mà chúng tôi đã làm trong PL / SQL Tutorial 42 về cách tạo thủ tục được lưu trữ với các tham số mặc dù có một số thay đổi nhỏ. Bây giờ nếu chúng ta sử dụng ký hiệu gọi vị trí thì chúng ta phải cung cấp các giá trị cho cả hai tham số của thủ tục trên theo cùng một cách mà chúng được khai báo.

Lệnh gọi Thủ tục được Lưu trữ sử dụng ký hiệu vị trí trong Cơ sở dữ liệu Oracle

EXECUTE emp_sal(40,2);

Trong lệnh gọi thủ tục đơn giản này, giá trị 40 tương ứng với tham số chính thức dep_id và giá trị 2 tương ứng với tham số sal_raise.

Ký hiệu cuộc gọi được đặt tên

Ký hiệu gọi có tên cho phép bạn chuyển các giá trị cho các tham số chính thức bằng cách sử dụng tên của chúng. Điều này sẽ cho phép bạn chỉ định các giá trị cho các tham số bắt buộc hoặc bắt buộc.

Ký hiệu gọi này hữu ích khi bạn có một chương trình con với các tham số trong đó một số tham số đó là bắt buộc và một số là tùy chọn và bạn muốn chỉ chuyển các giá trị cho những tham số bắt buộc.

Nhà điều hành hiệp hội

Để gán giá trị cho các tham số chính thức bằng cách sử dụng tên của chúng, chúng ta sử dụng toán tử kết hợp. Nó là sự kết hợp của dấu bằng (=) và dấu lớn hơn (>). Chúng tôi viết tên của tham số hình thức vào bên trái của toán tử và giá trị mà bạn muốn gán cho bên phải của toán tử.

Ví dụ về Ký hiệu gọi có tên để gọi chương trình con PL / SQL

CREATE OR REPLACE FUNCTION add_num
(var_1 NUMBER, var_2 NUMBER DEFAULT 0, var_3 NUMBER ) RETURN NUMBER 
IS
BEGIN
  RETURN var_1 + var_2 + var_3;
END;
/

Hàm trên có 3 tham số. Trong số 3 tham số này, 2 tham số là bắt buộc và 1 là tùy chọn với giá trị mặc định là 0.

Bạn có thể gọi hàm này bằng cách sử dụng ký hiệu vị trí. Nhưng nó có một hạn chế mà bạn phải thực hiện và đó là bạn phải cung cấp các giá trị cho tất cả các tham số chính thức theo cùng một thứ tự mà chúng được khai báo và kiểu dữ liệu của các tham số chính thức và thực tế phải khớp nhau.

Vì vậy, nếu bạn muốn bỏ qua tham số tùy chọn và muốn sử dụng giá trị mặc định của chúng hoặc bạn vừa quên thứ tự của tham số mà chúng đã được khai báo! Khi đó, bạn sẽ hơi khó gọi chương trình con trên bằng cách sử dụng ký hiệu vị trí. Trong trường hợp như vậy, bạn có thể tận dụng Ký hiệu Gọi được Đặt tên. Ký hiệu gọi này sẽ cung cấp cho bạn sự linh hoạt mong muốn trong việc gọi các chương trình con của bạn.

Lệnh gọi hàm PL / SQL sử dụng Ký hiệu gọi có tên trong Cơ sở dữ liệu Oracle

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_3 => 5, var_1 =>2);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

Tôi đã giải thích chi tiết về lệnh gọi Hàm PL / SQL trong Video Hướng dẫn về cùng chủ đề này trên kênh YouTube của tôi.

Ký hiệu gọi hỗn hợp để gọi các chương trình con PL / SQL

Như tên gợi ý trong ký hiệu gọi hỗn hợp, bạn có thể gọi các chương trình con bằng cách sử dụng kết hợp các ký hiệu gọi có tên cũng như vị trí. Ký hiệu gọi hỗn hợp rất hữu ích khi danh sách tham số được xác định với tất cả các tham số bắt buộc đầu tiên và các tham số tùy chọn tiếp theo.

Ví dụ về ký hiệu gọi hỗn hợp để gọi các chương trình con PL / SQL

Đây là khối ẩn danh mà chúng tôi đang gọi cùng một hàm add_num () mà chúng tôi đã mã hóa khi thực hiện ký hiệu gọi có tên.

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_1 => 10, 30 ,var_3 =>19);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

Đó là cách chúng tôi sử dụng ký hiệu gọi hỗn hợp để gọi các Chương trình con PL / SQL.

Hãy tự mình thử

Sử dụng kiến ​​thức từ các khái niệm trên, hãy thử giải quyết câu hỏi sau:

Viết một hàm PL / SQL với các tham số để hoán đổi hai số và gọi hàm đó bằng cách sử dụng ký hiệu gọi hỗn hợp.

Bạn có thể chia sẻ mã của mình hoặc ảnh chụp nhanh mã của bạn với tôi trên phương tiện truyền thông xã hội của tôi [Twitter // Facebook].

Hy vọng bạn thích đọc. Hãy chắc chắn để thích và chia sẻ blog này. Cảm ơn và chúc một ngày tốt lành.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh với ngày tháng trong Oracle sql

  2. Làm cách nào để đặt vùng múi giờ cho Kết nối JDBC và tránh không tìm thấy vùng múi giờ SqlException?

  3. Cách giải quyết ORA-29285:lỗi ghi tệp

  4. Cách lấy số hàng bị ảnh hưởng bởi một câu lệnh khi bên trong trình kích hoạt của câu lệnh đó

  5. cách chuyển biến từ shell script sang sqlplus