Có một chức năng hữu ích để giúp bạn:oidvectortypes
.
SELECT format('%I.%I(%s)', ns.nspname, p.proname, oidvectortypes(p.proargtypes))
FROM pg_proc p INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid);
hiển thị tất cả các hàm với các đối số. Bạn có thể điều chỉnh format
đó câu thần chú để tạo bất kỳ câu lệnh mong muốn nào và nếu bạn muốn, hãy LOOP
qua nó để cung cấp câu lệnh đã tạo vào EXECUTE
trong PL / PgSQL.
Ghi có cho Leo Hsu và Regina Obe at Postgres Trực tuyến
để chỉ ra oidvectortypes
. Tôi đã viết các hàm tương tự trước đây, nhưng sử dụng các biểu thức lồng nhau phức tạp mà hàm này không cần thiết.
Lưu ý rằng trong trường hợp này bạn không phải thực hiện bất kỳ quá trình tạo SQL tùy chỉnh nào , Tuy nhiên. Chỉ cần sử dụng GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
nếu bạn đang sử dụng một PostgreSQL gần đây.