Sự khác biệt là - Một hàm phải trả về một giá trị (thuộc bất kỳ kiểu nào) theo định nghĩa mặc định của nó, trong khi trong trường hợp của một thủ tục, bạn cần sử dụng các tham số như OUT
hoặc IN OUT
tham số để nhận kết quả. Bạn có thể sử dụng một hàm trong SQL
bình thường khi bạn không thể sử dụng một thủ tục trong SQL
tuyên bố.
Một số khác biệt giữa các chức năng và thủ tục
-
Một hàm luôn trả về một giá trị bằng cách sử dụng câu lệnh return trong khi một thủ tục có thể trả về một hoặc nhiều giá trị thông qua các tham số hoặc có thể hoàn toàn không trả về. các tham số vẫn có thể được sử dụng trong các hàm, chúng không được khuyến khích và không có trường hợp nào mà người ta có thể thấy cần phải làm như vậy. Sử dụng
OUT
tham số hạn chế một hàm được sử dụng trong câu lệnh SQL. -
Các hàm có thể được sử dụng trong các câu lệnh SQL điển hình như
SELECT
,INSERT
,CẬP NHẬT
,XÓA
,MERGE
, trong khi các thủ tục không thể. -
Các hàm thường được sử dụng để tính toán trong đó các thủ tục thường được sử dụng để thực thi logic nghiệp vụ.
-
Oracle cung cấp điều kiện tạo "Chỉ mục dựa trên chức năng" để cải thiện hiệu suất của câu lệnh SQL tiếp theo. Điều này áp dụng khi thực hiện hàm trên cột được lập chỉ mục trong mệnh đề where của truy vấn.
Thông tin thêm về các chức năng Vs. Thủ tục tại đây và tại đây.