Changeset 696
- Timestamp:
- 09/19/07 23:13:34 (1 year ago)
- Files:
-
- traduc/trunk/manuel/func.xml (modified) (7 diffs)
- traduc/trunk/manuel/plpgsql.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/manuel/func.xml
r694 r696 8929 8929 </sect2> 8930 8930 8931 <!-- ICI -->8932 <sect2>8933 <title><literal>ANY</literal>/<literal>SOME</literal></title>8934 8935 <synopsis><replaceable>constructeur_ligne</replaceable> <replaceable>operator</replaceable> ANY (<replaceable>sous-requête</replaceable>)8936 <replaceable>constructeur_ligne</replaceable> <replaceable>operator</replaceable> SOME (<replaceable>sous-requête</replaceable>)</synopsis>8937 8938 <para>8939 Le côté droit de la forme <token>ANY</token> est un constructeur de lignes,8940 comme décrit dans la <xref linkend="sql-syntax-row-constructors"/>.8941 Le côté droit de cette forme de <token>NOT IN</token> est une sous-requête8942 entre parenthèses qui doit renvoyer exactement autant de colonnes qu'il n'y a8943 d'expressions dans la ligne gauche. Les expressions du côté gauche sont8944 évaluées et comparées ligne par ligne à chaque ligne du résultat de la8945 sous-requête. Le résultat de <token>NOT IN</token> est vrai (<quote>true</quote>)8946 si seules des lignes différentes de la sous-requête sont trouvées (ceci8947 inclut le cas spécial où la sous-requête ne renvoie aucune ligne). Le8948 résultat est faux (<quote>false</quote>) si aucune ligne égale n'est trouvée.8949 </para>8950 8951 <para>8952 Comme d'habitude, les valeurs NULL de la ligne sont combinées suivant les8953 règles standards du SQL sur les expressions booléennes. Deux lignes sont8954 considérées égales si tous leurs membres correspondant sont non nuls et8955 égaux ; les lignes sont différentes si un des membres correspondants est8956 non nul et différent ; sinon le résultat de cette comparaison de ligne est8957 inconnu (nul). Si tous les résultats par ligne sont soit différents soit nuls, avec8958 au moins un nul, alors le résultat de <token>NOT IN</token> est nul.8959 </para>8960 </sect2>8961 8962 8931 <sect2> 8963 8932 <title><literal>ANY</literal>/<literal>SOME</literal></title> … … 8967 8936 8968 8937 <para> 8969 Le côté droit est une sous-requête entre parenthèse qui ne doit retourner8938 Le côté droit est une sous-requête entre parenthèses qui ne doit retourner 8970 8939 qu'une seule colonne. L'expression du côté gauche est évaluée et comparée à 8971 chaque ligne de la sous-requête en utilisant 8972 l'<replaceable>opérateur</replaceable> indiqué et rendant un résultat 8973 booléen. Le résultat de <token>ANY</token> est vrai (<quote>true</quote>) si un 8974 résultat vrai est obtenu. Le résultat est faux (<quote>false</quote>) si aucun 8975 résultat vrai n'est trouvée (ceci incluant le cas spécial où la requête ne 8976 renvoie aucune ligne). 8940 chaque ligne du résultat de la sous-requête à l'aide de 8941 l'<replaceable>opérateur</replaceable> indiqué, ce qui doit aboutir à une 8942 résultat booléen. Le résultat de <token>ANY</token> est vrai 8943 (<quote>true</quote>) si l'un des résultats est vrai. Le résultat est faux 8944 (<quote>false</quote>) si aucun 8945 résultat vrai n'est trouvé (ce qui inclut le cas spécial de la requête ne 8946 retournant aucune ligne). 8977 8947 </para> 8978 8948 … … 8983 8953 8984 8954 <para> 8985 Notez que sans succès et avec au moins une ligne NULL du côté droit pour le8986 résultat del'opérateur, le résultat de la construction <token>ANY</token>8987 sera nul et non pas faux. Ceci est en accord avec les règles standardsSQL8955 En l'absence de succès, mais si au moins une ligne du côté droit conduit à 8956 NULL avec l'opérateur, le résultat de la construction <token>ANY</token> 8957 est nul et non faux. Ceci est en accord avec les règles standard SQL 8988 8958 pour les combinaisons booléenne de valeurs NULL. 8989 8959 </para> 8990 8960 8991 8961 <para> 8992 Comme avec <token>EXISTS</token>, il n'est pas conseillé d'assumer que la8993 sous-requête sera évaluée complètement.8962 Comme pour <token>EXISTS</token>, on ne peut assumer que la sous-requête 8963 est évaluée entièrement. 8994 8964 </para> 8995 8965 8996 <synopsis>(<replaceable>expression</replaceable> <optional>, 8997 <replaceable>expression</replaceable> ...</optional>) <replaceable>opérateur</replaceable> 8998 ANY (<replaceable>sous-requête</replaceable>) 8999 (<replaceable>expression</replaceable> <optional>, 9000 <replaceable>expression</replaceable> ...</optional>) <replaceable>opérateur</replaceable> 9001 SOME (<replaceable>sous-requête</replaceable>)</synopsis> 8966 <synopsis><replaceable>constructeur_ligne</replaceable> <replaceable>operator</replaceable> ANY (<replaceable>sous-requête</replaceable>) 8967 <replaceable>constructeur_ligne</replaceable> <replaceable>operator</replaceable> SOME (<replaceable>sous-requête</replaceable>)</synopsis> 9002 8968 9003 8969 <para> 9004 Le côté droit de cette forme <token>ANY</token> est une sous-requête entre 9005 parenthèses, qui doit renvoyer exactement autant de colonnes qu'il n'y a 9006 d'expressions dans la liste gauche. Les expressions du côté gauche sont 9007 évaluées et comparées ligne par ligne à chaque ligne du résultat de la 9008 sous-requête en utilisant l'<replaceable>opérateur</replaceable> donné. 8970 Le côté gauche de cette forme <token>ANY</token> est un constructeur de 8971 ligne, tel que décrit dans la <xref linkend="sql-syntax-row-constructors"/>. 8972 Le côté droit est une sous-requête entre 8973 parenthèses, qui doit renvoyer exactement autant de colonnes qu'il y a 8974 d'expressions dans la ligne de gauche. Les expressions du côté gauche sont 8975 évaluées et comparées ligne à ligne au résultat de la 8976 sous-requête à l'aide de l'<replaceable>opérateur</replaceable> donné. 9009 8977 Le résultat de <token>ANY</token> est <quote>true</quote> si la comparaison 9010 renvoie true à une ligne de la sous-requête.8978 renvoie true pour une ligne quelconque de la sous-requête. 9011 8979 Le résultat est <quote>false</quote> si la comparaison renvoie false pour 9012 chaque ligne de la sous-requête (ce ci incluant le cas spécial oùla sous-requête9013 ne re nvoieaucune ligne). Le résultat est NULL si la comparaison ne renvoie9014 pas true pour toutes les lignes, et si ellerenvoie NULL pour au moins une8980 chaque ligne de la sous-requête (ce qui inclut le cas spécial de la sous-requête 8981 ne retournant aucune ligne). Le résultat est NULL si la comparaison ne renvoie 8982 true pour aucune ligne, et renvoie NULL pour au moins une 9015 8983 ligne. 9016 8984 </para> 9017 8985 9018 8986 <para> 9019 Voir <xref linkend="row-wise-comparison"/> pour l es détails de la signification9020 d'une comparaison sur une ligne entière.8987 Voir <xref linkend="row-wise-comparison"/> pour la signification détaillée 8988 d'une comparaison ligne à ligne. <!-- row-wise comparison --> 9021 8989 </para> 9022 8990 </sect2> … … 9031 8999 Le côté droit est une sous-requête entre parenthèses qui ne doit renvoyer 9032 9000 qu'une seule colonne. L'expression gauche est évaluée et comparée à chaque 9033 ligne du résultat de la sous-requête en utilisant9034 l'<replaceable>opérateur</replaceable> qui doit renvoyer un résultat booléen.9001 ligne du résultat de la sous-requête à l'aide de 9002 l'<replaceable>opérateur</replaceable>, ce qui doit renvoyer un résultat booléen. 9035 9003 Le résultat de <token>ALL</token> est vrai (<quote>true</quote>) si toutes les 9036 lignes renvoient true (ce ci incluant le cas spécial oùla sous-requête ne9037 re nvoieaucune ligne). Le résultat est faux (<quote>false</quote>) si un résultat9004 lignes renvoient true (ce qui inclut le cas spécial de la sous-requête ne 9005 retournant aucune ligne). Le résultat est faux (<quote>false</quote>) si un résultat 9038 9006 faux est découvert. Le résultat est NULL si la comparaison ne renvoie pas 9039 9007 false pour toutes les lignes, et si elle renvoie NULL pour au moins une ligne. … … 9045 9013 9046 9014 <para> 9047 Comme avec <token>EXISTS</token>, il est déconseillé d'assumer que la9048 sous-requête sera évaluée complètement.9015 Comme pour <token>EXISTS</token>, on ne peut assumer que la 9016 sous-requête est évaluée entièrement. 9049 9017 </para> 9050 9018 … … 9053 9021 <para> 9054 9022 Le côté gauche de cette forme de <token>ALL</token> est un constructeur de 9055 lignes comme décrit dans la <xref linkend="sql-syntax-row-constructors"/>.9056 Le côté droit de cette forme <token>ALL</token>est une sous-requête entre9023 lignes, tel que décrit dans la <xref linkend="sql-syntax-row-constructors"/>. 9024 Le côté droit est une sous-requête entre 9057 9025 parenthèses qui doit renvoyer exactement le même nombre de colonnes qu'il y a 9058 d'expressions dans la ligne gauche. Les expressions du côté gauche sont9059 évaluées et comparées ligne par ligne à chaque ligne du résultat de la9060 sous-requête en utilisantl'<replaceable>opérateur</replaceable> donné.9026 d'expressions dans la ligne de gauche. Les expressions du côté gauche sont 9027 évaluées et comparées ligne à ligne au résultat de la 9028 sous-requête à l'aide de l'<replaceable>opérateur</replaceable> donné. 9061 9029 Le résultat de <token>ALL</token> est <quote>true</quote> si la comparaison 9062 renvoie true pour toutes les lignes de la sous-requête (ce ci incluant le cas9063 spécial où la sous-requête ne renvoieaucune ligne).9030 renvoie true pour toutes les lignes de la sous-requête (ce qui inclut le cas 9031 spécial de la sous-requête ne retournant aucune ligne). 9064 9032 Le résultat est <quote>false</quote> si la comparaison renvoie false pour 9065 une ligne de la sous-requête.9066 Le résultat est NULL si la comparaison ne renvoie pas false pourune ligne9033 une ligne quelconque de la sous-requête. 9034 Le résultat est NULL si la comparaison ne renvoie false pour aucune ligne 9067 9035 de la sous-requête, et si elle renvoit NULL pour au moins une ligne. 9068 9036 </para> 9069 9037 9070 9038 <para> 9071 Voir <xref linkend="row-wise-comparison"/> pour des détails sur la signification9072 d'une comparaison parligne.9039 Voir <xref linkend="row-wise-comparison"/> pour la signification détaillée 9040 d'une comparaison ligne à ligne. 9073 9041 </para> 9074 9042 </sect2> 9075 9043 9076 9044 <sect2> 9077 <title>Comparaison de lignes complètes</title>9045 <title>Comparaison de lignes</title> 9078 9046 9079 9047 <indexterm zone="functions-subquery"> 9080 9048 <primary>comparaison</primary> 9081 <secondary>ligne s de résultats de sous-requêtes</secondary>9049 <secondary>ligne de résultats d'une sous-requête</secondary> 9082 9050 </indexterm> 9083 9051 … … 9085 9053 9086 9054 <para> 9087 Le côté gauche est un constructeur de lignes, comme décrit dans la<xref 9088 linkend="sql-syntax-row-constructors"/>. Le côté droit est une 9089 9055 Le côté gauche est un constructeur de lignes, tel que décrit dans la 9056 <xref linkend="sql-syntax-row-constructors"/>. Le côté droit est une 9090 9057 sous-requête entre parenthèses qui doit renvoyer exactement autant de 9091 colonnes qu'il n'y a d'expressions su lecôté gauche. De plus, la9092 sous-requête ne peut pas renvoyer plus d'une ligne. (S 'ilne renvoie aucune9093 ligne, le résultat est pris comme s'il étaitnul.) Le côté gauche est évalué9094 et comparé avec la ligne durésultat de la sous-requête.9058 colonnes qu'il y a d'expressions du côté gauche. De plus, la 9059 sous-requête ne peut pas renvoyer plus d'une ligne. (Si elle ne renvoie aucune 9060 ligne, le résultat est considéré nul.) Le côté gauche est évalué 9061 et comparé ligne complète avec la ligne de résultat de la sous-requête. 9095 9062 </para> 9096 9063 9097 9064 <para> 9098 9065 Voir <xref linkend="row-wise-comparison"/> pour plus de détails sur la 9099 signification d'une comparaison parligne.9066 signification d'une comparaison ligne à ligne. 9100 9067 </para> 9101 9068 </sect2> 9102 9069 </sect1> 9103 9070 9104 9071 <!-- ICI --> 9105 9072 <sect1 id="functions-comparisons"> 9106 9073 <title>Comparaisons de lignes et de tableaux</title> traduc/trunk/manuel/plpgsql.xml
r695 r696 534 534 Toutes les variables utilisées dans un bloc doivent être déclarées 535 535 dans la section déclaration du bloc. 536 (La seule exception est que la variable d'une boucle <literal>FOR</literal> 537 effectuant une itération sur des valeurs entières est implicitement déclarée 538 comme une variable de type <type>integer</type>.) 539 </para> 540 541 <para> 542 Les variables <application>PL/pgSQL</application> peuvent être de n'importe quel type de données 543 tels que <type>integer</type>, <type>varchar</type>, et 536 (La seule exception concerne la variable d'une boucle 537 <literal>FOR</literal> qui, si elle itère sur des valeurs entières, 538 est implicitement déclarée comme une variable de type <type>integer</type>.) 539 </para> 540 541 <para> 542 Les variables <application>PL/pgSQL</application> peuvent être de 543 n'importe quel type de données SQL, 544 tels que <type>integer</type>, <type>varchar</type> et 544 545 <type>char</type>. 545 546 </para> 546 547 547 548 <para> 548 Voici quelques exemples de déclarations de variables :549 Quelques exemples de déclarations de variables : 549 550 <programlisting>id_utilisateur integer; 550 551 quantité numeric(5);

