PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PL/pgSQL अनाम ब्लॉक के अंदर संदर्भ psql पैरामीटर

psql पार्सर नहीं देख सकता कि अंदर के तार क्या हैं। यह वही हो सकता है जो आप चाहते हैं:

delete from t
where :para = 1

इसे किसी अनाम ब्लॉक के बाहर करें। अगर आपको वाकई PL/pgSQL की ज़रूरत है एक पैरामीटरयुक्त फ़ंक्शन का उपयोग करें:

create or replace function f(_para integer)
returns void as $$
begin
    if _para = 1 then
        --statements
    end if;
end; $$ language plpgsql;

और आपकी स्क्रिप्ट फ़ाइल में निम्न होगा:

select f(:para);

यदि आप डीबी में स्थायी रूप से कोई फ़ंक्शन नहीं जोड़ना चाहते हैं तो यह सब स्क्रिप्ट के अंदर करें:

drop function if exists f_iu7YttW(integer);

create or replace function f_iu7YttW(_para integer)
returns void as $$
begin
    if _para = 1 then
        --statements
    end if;
end; $$ language plpgsql;

select f_iu7YttW(:para);

drop function f_iu7YttW(integer);

फ़ंक्शन को एक अद्वितीय नाम दें ताकि आप कुछ और छोड़ने का जोखिम न उठाएं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांक सीमाओं के आधार पर अलग-अलग पंक्तियों की संख्या की क्वेरी करना

  2. Oracle से Postgresql में स्थानिक डेटा माइग्रेट करें

  3. अनुक्रम मान को 1 . के रूप में रीसेट करें

  4. Postgres . का उपयोग करके एक विशिष्ट समय के बीच औसत मानों के साथ एकाधिक डेटा का चयन करने की क्वेरी

  5. PostgreSQL के सभी अनुकूलन को कैसे निष्क्रिय करें