Vì mỗi hàm / thủ tục phải có một mục nhập trong pg_proc, bạn có thể sử dụng khóa chính để xác định thủ tục. Điều này cũng sẽ loại bỏ các vấn đề với các thủ tục có cùng tên nhưng số lượng tham số khác nhau hoặc các loại tham số khác nhau.
Viết tắt cho điều này là các loại regproc
và regprocedure
với các phôi được liên kết để xử lý dễ dàng hơn. Tra cứu hướng dẫn
cho những thứ này.
Việc xác định hàm và chuyển nó đi không có vấn đề gì:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
regprocedure
-----------------------
pg_database_size(oid)
Sử dụng regprocedure
làm loại tham số.
Vấn đề tôi chưa tìm ra là làm thế nào để thực sự gọi một thứ như vậy một cách thuận tiện.