यदि आप जिन कथनों को "eval" करने का प्रयास कर रहे हैं, वे हमेशा एक ही डेटा प्रकार लौटाते हैं, तो आप एक eval() फ़ंक्शन लिख सकते हैं जो Grzegorz द्वारा उल्लिखित EXECUTE का उपयोग करता है।
create or replace function eval(expression text) returns integer
as
$body$
declare
result integer;
begin
execute expression into result;
return result;
end;
$body$
language plpgsql
तब आप कुछ ऐसा कर सकते हैं
SELECT eval('select 41') + 1;
लेकिन यह तरीका काम नहीं करेगा यदि आपके डायनामिक स्टेटमेंट प्रत्येक एक्सप्रेशन के लिए कुछ अलग लौटाते हैं जिसका आप मूल्यांकन करना चाहते हैं।
यह भी ध्यान रखें कि यह मनमाने बयानों को चलाकर एक बड़ा सुरक्षा जोखिम खोलता है। यदि यह एक समस्या है तो यह आपके पर्यावरण पर निर्भर करता है। यदि इसका उपयोग केवल इंटरैक्टिव SQL सत्र में किया जाता है तो यह कोई समस्या नहीं है।