Sự khác biệt giữa thủ tục lưu trữ và hàm

Anonim

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

Các thủ tục lưu trữ và chức năng là hai loại khối lập trình. Cả hai đều phải có tên gọi. Những 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 thủ tục và gói hoặc cá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 nhiệm vụ đằng sau các đối tượng đó. Đây là cú pháp (trong ORACLE) để tạo một thủ tục lưu trữ,

tạo hoặc thay thế các thủ tục của chương trình (các thông số)

theo câu lệnh

bắt đầu

;

ngoại lệ

exception_handling

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 (parameters)

trả về return_datatype

như câu lệnh

bắt đầu

;

return return_value / variable;

ngoại lệ;

exception_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 là các khối lập trình. Họ chấp nhận các tham số như là đầu vào của người sử dụng và quy trình theo logic đằng sau thủ tục và cho kết quả (hoặc thực hiện một hành động cụ thể). Các thông số này có thể là IN, OUT và INOUT. Các khai báo biến, các bài tập biến đổi, các câu lệnh điều khiển, các vòng lặp, các truy vấn SQL và các hàm / thủ tục / cuộc gọi gói có thể nằm bên trong các thủ tục.

Chức năng

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

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

  • Có các loại con của một chức năng hàng đơn.

Chức năng số (ví dụ: ABS, SIN, COS)

  • Chức năng ký tự (ví dụ: CONCAT, INITCAP)
  • Chức năng thời gian (ví dụ: LAST_DAY, NEXT_DAY)
  • Chức năng chuyển đổi (ví dụ: TO_CHAR, TO_DATE)
  • Chức năng thu thập dữ liệu (ví dụ: CARDINALITY, SET)
  • Các hàm tổng hợp (Trả về một hàng, dựa trên một nhóm hàng ví dụ: AVG, SUM, MAX)
  • Chức năng phân tích
  • Các chức năng của mô hình
  • Các chức năng do người dùng định nghĩa
  • Sự khác biệt giữa chức năng và Thủ tục lưu lại là gì?

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

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

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