Nếu bạn đang sử dụng máy khách, bạn có thể đặt điều này trong một tập lệnh SQL (ví dụ:export_plpgsql.sql):
\pset tuples_only on
\pset footer off
\set QUIET on
\pset format unaligned
\set QUIET off
SELECT '\echo ''* Export '||(CASE proKind WHEN 'f' THEN 'Function' ELSE 'Procedure' END)||' : '||proName||''''
||chr(10)||'\copy (SELECT pg_get_functiondef('||p.oid||')) TO '''||:'export_path'||'/'||upper(proName)
||(CASE proKind WHEN 'f' THEN '.fct' ELSE '.prc' END)||''' WITH CSV;' as export_routine
FROM pg_proc p
WHERE proNamespace = (SELECT oid FROM pg_namespace WHERE nspName = lower(:'schema_name'))
ORDER BY proName;
và gọi nó bằng 2 đối số:schema_name và export_path, ví dụ:
psql -U my_ -d my_db -v schema_name=my_schema -v export_path=C:/temp/export_PG -f export_plpgsql.sql > C:\temp\export_plpgsql.gen.sql
Thao tác này sẽ tạo một tập lệnh chứa tất cả lệnh xuất cho các quy trình plpgsql của bạn, ví dụ:
\copy (SELECT pg_get_functiondef(51296)) TO 'C:/temp/export_PG/my_procedure.prc' WITH CSV;
Bước cuối cùng:chạy tập lệnh đã tạo
psql -U my_ -d my_db -f C:\temp\export_plpgsql.gen.sql
Nó sẽ tạo tệp .prc cho mỗi thủ tục và tệp .fct cho mỗi chức năng.NB:Bạn có thể phải tinh chỉnh tập lệnh vì bạn có thể có các loại chức năng khác (proKind) trong chế độ xem pg_proc.