चूंकि पीएल ब्लॉक वास्तव में कोड में टेक्स्ट स्थिरांक हैं, इसलिए आंतरिक चर को उनके अंदर सामान्य तरीके से प्रतिस्थापित नहीं किया जाता है। सौभाग्य से विभिन्न SQL/PL ब्लॉकों के बीच डेटा साझा करने के लिए सत्र चर का उपयोग करना संभव है:
set foo.bar to :v1; -- Name should contains the dot, don't ask me why
show foo.bar; -- Check that the value was assigned
do $$
declare
myvar text := current_setting('foo.bar');
begin
raise info '%', myvar; -- Output variable value
end $$;
यह सुनिश्चित करने के लिए कि वेरिएबल असाइन किया गया है और यदि नहीं है तो डिफ़ॉल्ट मान सेट करें:
\if :{?v1}
set foo.bar to :v1;
\else
set foo.bar to 'default';
\endif
अधिक विवरण:
https://www.postgresql.org/docs/current/app-psql.html#PSQL-METACOMMAND-IFhttps://www.postgresql.org/docs/current/app-psql.html #एपीपी-पीएसक्यूएल-इंटरपोलेशन