Skip to content

Commit

Permalink
Traduction de xfunc par Laetitia Avrot
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Jun 18, 2021
1 parent 8dd7222 commit b0615c2
Showing 1 changed file with 24 additions and 21 deletions.
45 changes: 24 additions & 21 deletions postgresql/xfunc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,8 @@ SELECT nettoie_emp();
</para>

<para>
You can also write this as a procedure, thus avoiding the issue of the
return type. For example:
Vous pouvez aussi l'écrire comme une procédure, ce qui évite d'avoir à renseigner
un paramètre de sortie. Par exemple:
<screen>
CREATE PROCEDURE clean_emp() AS '
DELETE FROM emp
Expand All @@ -224,11 +224,12 @@ CREATE PROCEDURE clean_emp() AS '

CALL clean_emp();
</screen>
In simple cases like this, the difference between a function returning
<type>void</type> and a procedure is mostly stylistic. However,
procedures offer additional functionality such as transaction control
that is not available in functions. Also, procedures are SQL standard
whereas returning <type>void</type> is a PostgreSQL extension.
Dans les cas simples comme celui-ci, la différence entre une fonction retournant
un <type>void</type> et une procédure est purement esthétique. Cependant,
les procédures offrent des fonctionnalités supplémentaires comme le contrôle
des transactions qui n'est pas disponible dans une fonction. De plus, les
procédures sont conformes à la norme SQL alors que renvoyer <type>void</type>
est une fonctionnalité spécifique à PostgreSQL.
</para>

<note>
Expand Down Expand Up @@ -569,8 +570,9 @@ $$ LANGUAGE SQL;
erreur telle que&nbsp;:
<screen><computeroutput>+ERROR: return type mismatch in function declared to return emp
DETAIL: Final statement returns text instead of point at column 4.</computeroutput></screen>
sera renvoyée. As with the base-type case, the system will not insert explicit
casts automatically, only implicit or assignment casts.
sera renvoyée. Comme c'est le cas ppour les types de base, le système ne fera
pas de conversion explicite automatiquement, mais seulement des conversions
implicites ou d'affectation.
</para>
</listitem>
</itemizedlist>
Expand Down Expand Up @@ -756,15 +758,16 @@ DROP FUNCTION ajoute_n_produit (int, int);
</indexterm>

<para>
Output parameters are also supported in procedures, but they work a bit
differently from functions. Notably, output parameters
<emphasis>are</emphasis> included in the signature of a procedure and
must be specified in the procedure call.
Les paramètres de sortie sont aussi utilisables dans les procédures mais
leur fonctionnement est légèrement différent par rapport aux paramètres
de sortie des fonctions. En particulier, les paramètres de de sortie
<emphasis>sont</emphasis> inclus dans la signature de la procédure et
doivent être indiqués lors de l'appel de la procédure.
</para>

<para>
For example, the bank account debiting routine from earlier could be
written like this:
Par exemple, la procédure précédente permettant de débiter un compte
bancaire pourrait être écrite ainsi&nbsp;:
<programlisting>
CREATE PROCEDURE tp1 (accountno integer, debit numeric, OUT new_balance numeric) AS $$
UPDATE bank
Expand All @@ -773,18 +776,18 @@ CREATE PROCEDURE tp1 (accountno integer, debit numeric, OUT new_balance numeric)
RETURNING balance;
$$ LANGUAGE SQL;
</programlisting>
To call this procedure, it is irrelevant what is passed as the argument
of the <literal>OUT</literal> parameter, so you could pass
<literal>NULL</literal>:
Pour appeler cette procédure, le paramètre de sortie n'a aucune importance, il
est donc possible de passer <literal>NULL</literal>.
<programlisting>
CALL tp1(17, 100.0, NULL);
</programlisting>
</para>

<para>
Procedures with output parameters are more useful in PL/pgSQL, where the
output parameters can be assigned to variables. See <xref
linkend="plpgsql-statements-calling-procedure"/> for details.
Les procédures avec des paramètres de sortie sont plus utiles en PL/pgSQL,
langage qui permet d'utiliser des variables pour les paramètres de sortie.
Voir <xref linkend="plpgsql-statements-calling-procedure"/> pour plus
d'informations.
</para>
</sect2>

Expand Down

0 comments on commit b0615c2

Please sign in to comment.