Thủ tục so với Chức năng trong Lập trình
Thủ tục và Hàm trong lập trình, cho phép người lập trình nhóm các lệnh lại với nhau trong một khối duy nhất và nó có thể được gọi từ nhiều nơi khác nhau trong chương trình. Mã trở nên dễ hiểu và nhỏ gọn hơn. Bằng cách thực hiện các sửa đổi ở một nơi duy nhất, toàn bộ mã sẽ bị ảnh hưởng. Với sự trợ giúp của các chức năng và thủ tục; một mã tuyến tính và dài có thể được chia thành các phần độc lập. Chúng cung cấp tính linh hoạt hơn cho việc mã hóa các ngôn ngữ lập trình và cơ sở dữ liệu khác nhau.
Chức năng là gì?
Các hàm có khả năng chấp nhận các tham số còn được gọi là các đối số. Chúng thực hiện các tác vụ theo các đối số hoặc tham số này và trả về các giá trị của các kiểu đã cho. Chúng ta có thể giải thích nó tốt hơn với sự trợ giúp của một ví dụ: Một hàm chấp nhận một chuỗi làm tham số và trả về mục nhập hoặc bản ghi đầu tiên từ cơ sở dữ liệu. Nó tính đến nội dung cho một trường cụ thể bắt đầu bằng các ký tự như vậy.
Cú pháp của hàm như sau:
TẠO HOẶC THAY THẾ CHỨC NĂNG my_func
(p_name IN VARCHAR2:=‘Jack’) trả về varchar2 khi bắt đầu… end
Thủ tục là gì?
Thủ tục có thể chấp nhận các tham số hoặc đối số và chúng thực hiện các tác vụ theo các tham số này. Nếu một thủ tục chấp nhận một chuỗi làm tham số và nó đưa ra một danh sách với các bản ghi trong cơ sở dữ liệu mà nội dung của một trường cụ thể bắt đầu bằng các ký tự như vậy.
Cú pháp của các thủ tục như sau:
TẠO HOẶC THAY THẾ THỦ TỤC của tôi
(p_name IN VARCHAR2:=‘Jack’) khi bắt đầu… kết thúc
Về cơ bản, có hai cách mà một tham số được truyền vào các hàm và thủ tục; theo giá trị hoặc tham chiếu. Nếu tham số được truyền bởi một giá trị; sửa đổi bị ảnh hưởng trong hàm hoặc thủ tục mà không ảnh hưởng đến giá trị thực của nó.
Mặt khác, nếu các tham số được truyền bởi các tham chiếu; giá trị thực của tham số này sẽ được thay đổi ở bất cứ nơi nào nó được gọi trong mã theo hướng dẫn.
Sự khác biệt giữa thủ tục và hàm
• Khi tham số được truyền vào thủ tục; nó không trả về bất kỳ giá trị nào trong khi một hàm luôn trả về một giá trị.
• Một trong những điểm khác biệt chính của cả hai là các thủ tục không được sử dụng trong cơ sở dữ liệu trong khi các hàm đóng một vai trò quan trọng trong việc trả về các giá trị từ cơ sở dữ liệu.
• Các thủ tục có khả năng trả về nhiều giá trị và các hàm có thể trả về các giá trị giới hạn.
• Các hoạt động DML có thể được sử dụng trong các thủ tục được lưu trữ; tuy nhiên, chúng không thể thực hiện được trong các chức năng.
• Các hàm chỉ có thể trả về một giá trị và nó là bắt buộc trong khi các thủ tục có thể trả về giá trị n hoặc 0.
• Trong các hàm, không thể xử lý lỗi trong khi nó có thể được thực hiện trong các thủ tục được lưu trữ.
• Các tham số đầu vào và đầu ra có thể được truyền trong các thủ tục trong khi trong trường hợp các hàm; chỉ có thể thông qua các tham số đầu vào.
• Các hàm có thể được gọi từ các thủ tục trong khi không thể gọi một thủ tục từ một hàm.
• Quản lý giao dịch có thể được xem xét trong các thủ tục và nó không thể được xem xét trong trường hợp các chức năng.