2013-09-06 6 views
6

जब मैं परिभाषित एक फ़ंक्शन से निम्न आदेश चलाता हूं, तो मुझे त्रुटि मिलती है "चयन का निष्पादन ... INTO लागू नहीं किया गया है"। क्या इसका मतलब है कि विशिष्ट कमांड की अनुमति नहीं है (यानी "चुनें ... INTO")? या क्या इसका मतलब यह है कि मैं कुछ गलत कर रहा हूं? त्रुटि उत्पन्न करने वाला वास्तविक कोड नीचे है। मैं क्षमा चाहता हूं अगर उत्तर पहले से ही बाहर है, हालांकि मैंने देखा और यह विशिष्ट त्रुटि नहीं मिली। अग्रिम धन्यवाद ... जो कुछ भी करने के लिए इसके लायक मैं 8.4.7PostgreSQL त्रुटि: चयन का निष्पादन ... INTO लागू नहीं किया गया है

vCommand = 'select ' || stmt.column_name || ' as id ' || 
      ', count(*) as nCount 
      INTO tmpResults 
      from ' || stmt.table_name || ' 
      WHERE ' || stmt.column_name || ' IN (select distinct primary_id from anyTable 
               WHERE primary_id = ' || stmt.column_name || ') 
      group by ' || stmt.column_name || ';'; 
EXECUTE vCommand; 

उत्तर

7

चल रहा हूँ जांच है इस प्रयोग के मामले में अस्पष्ट है और फिर वहाँ निषिद्ध है।

आप इसके बजाय चयन तालिका का उपयोग कर सकते हैं।

 
CREATE OR REPLACE FUNCTION public.f1(tablename character varying) 
RETURNS integer 
LANGUAGE plpgsql 
AS $function$ 
begin 
    execute 'create temp table xx on commit drop as select * from ' 
             || quote_ident(tablename); 
    return (select count(*) from xx); 
end; 
$function$ 

postgres=# select f1('omega'); 
f1 
──── 
    2 
(1 row) 
+0

यह निश्चित रूप से ऐसा करता है। एक बिल्ली त्वचा के लिए एक से अधिक तरीके है! यह बात बताने के लिए धन्यवाद। :-) –

संबंधित मुद्दे