यदि आप क्लाइंट मशीन पर हैं, तो आप इसे SQL स्क्रिप्ट में डाल सकते हैं (उदा. 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;
और इसे 2 तर्कों का उपयोग करके कॉल करें:schema_name और Export_path, उदाहरण के लिए:
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
यह आपके plpgsql रूटीन के लिए सभी एक्सपोर्ट कमांड वाली एक स्क्रिप्ट जेनरेट करेगा, उदा.
\copy (SELECT pg_get_functiondef(51296)) TO 'C:/temp/export_PG/my_procedure.prc' WITH CSV;
अंतिम चरण :जेनरेट की गई स्क्रिप्ट चलाएँ
psql -U my_ -d my_db -f C:\temp\export_plpgsql.gen.sql
यह प्रत्येक प्रक्रिया के लिए एक .prc फ़ाइल और प्रत्येक फ़ंक्शन के लिए एक .fct फ़ाइल उत्पन्न करेगा।एनबी:आपको स्क्रिप्ट को परिष्कृत करना पड़ सकता है क्योंकि आपके पास pg_proc दृश्य में अन्य प्रकार के फ़ंक्शन (proKind) हो सकते हैं।