[HELP] Defining a function as a procedure - Mailing list pgsql-sql
From | Daniel Caune |
---|---|
Subject | [HELP] Defining a function as a procedure |
Date | |
Msg-id | 1E293D3FF63A3740B10AD5AAD88535D201663CC5@UBIMAIL1.ubisoft.org Whole thread Raw |
Responses |
Re: [HELP] Defining a function as a procedure
|
List | pgsql-sql |
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt; font-family:Arial">Hi,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt; font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">Is there a way to define a function as a procedure, I mean a function that returns nothing.</span></font><pclass="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue">CREATE OR </span></font><font face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew"">REPLACE FUNCTION foo(<in-parameters>)</span></font><p class="MsoNormal"><fontcolor="blue" face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew";color:blue">AS </span></font><font face="Courier New" size="2"><span lang="EN-CA"style="font-size:10.0pt;font-family: "Courier New"">$$</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue">BEGIN</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue"> <update-some-tables></span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue"face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue">END</span></font><font face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew"">;</span></font><p class="MsoNormal"><font face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"">$$ <font color="blue"><span style="color:blue">LANGUAGE</span></font>'plpgsql';</span></font><font face="Arial" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:Arial"></span></font><pclass="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">Actually, PostgreSQL complains as a “function result type must be specified”. I can patch my functionso that it compiles but that won’t be really nice:</span></font><p class="MsoNormal"><font face="Arial" size="2"><spanlang="EN-CA" style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue">CREATE OR </span></font><font face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew"">REPLACE FUNCTION foo(<in-parameters>)</span></font><p class="MsoNormal"style="text-autospace:none"><font face="Courier New" size="2"><span style="font-size:10.0pt;font-family:"CourierNew""> RETURNS <font color="blue"><span style="color:blue">int</span></font></span></font><pclass="MsoNormal"><font color="blue" face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New";color:blue">AS </span></font><font face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family: "Courier New"">$$</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue">BEGIN</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; color:blue"> <update-some-tables></span></font><p class="MsoNormal" style="text-autospace:none"><font face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New""> <font color="blue"><spanstyle="color:blue">RETURN </span></font>1;</span></font><p class="MsoNormal" style="text-autospace:none"><fontcolor="blue" face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew"; color:blue">END</span></font><font face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"CourierNew"">;</span></font><p class="MsoNormal"><font face="Courier New" size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"">$$ <font color="blue"><span style="color:blue">LANGUAGE</span></font>'plpgsql';</span></font><font face="Arial" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:Arial"></span></font><pclass="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">Is there any other prettier way to do that?</span></font><p class="MsoNormal"><font face="Arial"size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">Thanks,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">--</span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 10.0pt;font-family:Arial">Daniel</span></font><span lang="EN-CA"></span><p class="MsoNormal"><font face="Times New Roman"size="3"><span lang="EN-CA" style="font-size:12.0pt"> </span></font></div>