Sự khác biệt giữa thủ tục lưu trữ và chức năng

Thủ tục lưu trữ vs chức năng
 

Các thủ tục và chức năng được lưu trữ là hai loại khối lập trình. Cả hai phải có tên gọi. Các tên gọi này được sử dụng để gọi chúng trong một khối lập trình khác như các hàm và gói thủ tục hoặc truy vấn SQL. Cả hai loại đối tượng này đều chấp nhận tham số và thực hiện tác vụ đằng sau các đối tượng đó. Đây là cú pháp (trong ORACLE) để tạo một thủ tục được lưu trữ,

 tạo hoặc thay thế thủ tục tên (tham số)

 như

 bắt đầu

     các câu lệnh;

 ngoại lệ

     ngoại lệ

 kết thúc;

Và đây là cú pháp để tạo một hàm (trong ORACLE),

tạo hoặc thay thế hàm function_name (tham số)

return return_datatype

như

bắt đầu

các câu lệnh;

return return_value / biến;

ngoại lệ;

ngoại lệ_handling;

kết thúc;

Thủ tục lưu trữ

Như đã đề cập ở trên các thủ tục lưu trữ được đặt tên khối lập trình. Họ chấp nhận các tham số là đầu vào của người dùng và xử lý theo logic đằng sau thủ tục và đưa ra kết quả (hoặc thực hiện một hành động cụ thể). Các tham số này có thể là loại IN, OUT và INOUT. Khai báo biến, gán biến, câu lệnh điều khiển, vòng lặp, truy vấn SQL và các lệnh gọi hàm / thủ tục / gói khác có thể nằm trong phần thân của thủ tục.

Chức năng

Các hàm cũng được đặt tên là các khối lập trình, phải trả về một giá trị bằng cách sử dụng câu lệnh RETURN và trước khi nó trả về một giá trị, phần thân của nó cũng thực hiện một số hành động (theo logic đã cho). Các hàm cũng chấp nhận các tham số để chạy. Các chức năng có thể được gọi bên trong các truy vấn. Khi một hàm được gọi bên trong một truy vấn SELECT, nó sẽ áp dụng cho từng hàng của tập kết quả của truy vấn SELECT. Có một số loại chức năng ORACLE. họ đang,

  • Các hàm hàng đơn (trả về một kết quả duy nhất cho mỗi và mọi hàng của truy vấn)

Có các loại phụ của một hàm hàng.

  • Hàm số (Ví dụ: ABS, SIN, COS)
  • Hàm ký tự (Ví dụ: CONCAT, INITCAP)
  • Hàm thời gian ngày (Ví dụ: LAST_DAY, NEXT_DAY)
  • Các chức năng chuyển đổi (Ví dụ: TO_CHAR, TO_DATE)
  • Chức năng thu thập (Ví dụ: CARDINALITY, SET)
  • Các hàm tổng hợp (Trả về một hàng đơn, dựa trên một nhóm các hàng. Ví dụ: AVG, SUM, MAX)
  • Chức năng phân tích
  • Hàm tham chiếu đối tượng
  • Chức năng mô hình
  • Hàm do người dùng xác định

Sự khác biệt giữa chức năng và thủ tục lưu trữ là gì?

• Tất cả các chức năng phải trả về một giá trị bằng cách sử dụng câu lệnh RETURN. Các thủ tục được lưu trữ không trả về giá trị bằng cách sử dụng câu lệnh RETURN. Câu lệnh RETURN bên trong một thủ tục sẽ trả lại quyền điều khiển của nó cho chương trình gọi. Các tham số OUT có thể được sử dụng để trả về các giá trị từ các thủ tục được lưu trữ.

• Các hàm có thể được gọi bên trong các truy vấn, nhưng các thủ tục được lưu trữ không thể được sử dụng bên trong các truy vấn.

• Phải bao gồm loại dữ liệu RETURN để tạo hàm, nhưng trong thủ tục lưu trữ DDL, nó không phải là.