root/traduc/branches/bv747/manuel/ref/copy.sgml

Revision 104, 23.6 kB (checked in by gleu, 3 years ago)

Des sauts de ligne en trop dans les exemples.

Line 
1 <!--
2 $Header: /var/lib/cvs/pgsql-fr/sgml/ref/copy.sgml,v 1.8.2.3 2005/07/15 06:33:52 guillaume Exp $
3 PostgreSQL documentation
4 -->
5
6 <refentry id="SQL-COPY">
7  <refmeta>
8   <refentrytitle id="sql-copy-title">COPY</refentrytitle>
9   <refmiscinfo>SQL - Instructions du langage</refmiscinfo>
10  </refmeta>
11
12  <refnamediv>
13   <refname>COPY</refname>
14   <refpurpose>copie des données entre un fichier et une table</refpurpose>
15  </refnamediv>
16
17  <indexterm zone="sql-copy">
18   <primary>COPY</primary>
19  </indexterm>
20
21  <refsynopsisdiv>
22 <synopsis>
23 COPY <replaceable class="parameter">nomtable</replaceable> [ ( <replaceable
24 class="parameter">colonne</replaceable> [, ...] ) ]
25     FROM { '<replaceable class="parameter">nomfichier</replaceable>' | STDIN }
26     [ [ WITH ]
27           [ BINARY ]
28           [ OIDS ]
29           [ DELIMITER [ AS ] '<replaceable
30 class="parameter">délimiteur</replaceable>' ]
31           [ NULL [ AS ] '<replaceable class="parameter">chaîne
32 NULL</replaceable>' ] ]
33
34 COPY <replaceable class="parameter">nomtable</replaceable> [ ( <replaceable
35 class="parameter">colonne</replaceable> [, ...] ) ]
36     TO { '<replaceable class="parameter">nomfichier</replaceable>' | STDOUT }
37     [ [ WITH ]
38           [ BINARY ]
39           [ OIDS ]
40           [ DELIMITER [ AS ] '<replaceable
41 class="parameter">délimiteur</replaceable>' ]
42           [ NULL [ AS ] '<replaceable class="parameter">chaîne
43 NULL</replaceable>' ] ]
44 </synopsis>
45  </refsynopsisdiv>
46  
47  <refsect1>
48   <title>Description</title>
49
50   <para>
51    <command>COPY</command> déplace des données entre les tables de
52    <productname>PostgreSQL</productname> et les fichiers du système de
53    fichiers standard. <command>COPY TO</command> copie le contenu d'une table
54    <emphasis>dans</> un fichier alors que <command>COPY FROM</command> copie
55    des données <emphasis>à partir</> d'un fichier dans une table (ajoutant les
56    données à ce qui se trouve déjà dans la table).
57   </para>
58
59   <para>
60    Si une liste de colonnes est spécifiée, <command>COPY</command> copiera
61    seulement les données des colonnes spécifiées vers ou à partir du fichier.
62    S'il y a des colonnes dans la table qui ne se trouvent pas dans la liste de
63    colonnes, <command>COPY FROM</command> insérera les valeurs par défaut de ces
64    colonnes.
65   </para>
66
67   <para>
68    <command>COPY</command> avec un nom de fichier indique au serveur
69    <productname>PostgreSQL</productname> de lire directement à partir d'un
70    fichier ou d'écrire dans un fichier. Le fichier doit être accessible du
71    serveur et le nom doit être spécifié à partir du point de vue du serveur.
72    Lorsque <literal>STDIN</literal> ou <literal>STDOUT</literal> est indiqué,
73    les données sont transmises via la connexion entre le client et le serveur.
74   </para>
75  </refsect1>
76
77  <refsect1>
78   <title>Paramètres</title>
79
80   <variablelist>
81    <varlistentry>
82     <term><replaceable class="parameter">nomtable</replaceable></term>
83     <listitem>
84      <para>
85      Le nom d'une table existante (pouvant être qualifié avec le nom du schéma).
86      </para>
87     </listitem>
88    </varlistentry>
89
90    <varlistentry>
91     <term><replaceable class="parameter">colonne</replaceable></term>
92      <listitem>
93      <para>
94       Une liste optionnelle de colonnes à copier. Si aucune liste n'est donnée,
95       toutes les colonnes seront utilisées.
96      </para>
97     </listitem>
98    </varlistentry>
99
100    <varlistentry>
101     <term><replaceable class="parameter">nomfichier</replaceable></term>
102     <listitem>
103      <para>
104       Le chemin absolu du fichier en entrée ou en sortie.
105      </para>
106     </listitem>
107    </varlistentry>
108
109    <varlistentry>
110     <term><literal>STDIN</literal></term>
111     <listitem>
112      <para>
113       Spécifie que l'entrée provient de l'application cliente.
114      </para>
115     </listitem>
116    </varlistentry>
117
118    <varlistentry>
119     <term><literal>STDOUT</literal></term>
120     <listitem>
121      <para>
122       Spécifie que la sortie va vers l'application cliente.
123      </para>
124     </listitem>
125    </varlistentry>
126
127    <varlistentry>
128     <term><literal>BINARY</literal></term>
129     <listitem>
130      <para>
131       Fait que toutes les données sont stockées ou lues au format binaire plutôt
132       qu'en texte. Vous ne pouvez pas spécifier les options
133       <option>DELIMITER</option> ou <option>NULL</option> en mode binaire.
134      </para>
135     </listitem>
136    </varlistentry>
137
138    <varlistentry>
139     <term><literal>OIDS</literal></term>
140     <listitem>
141      <para>
142       Demande la copie des OID pour chaque ligne. (Une erreur est levée si
143       <literal>OIDS</literal> est spécifié pour une table qui ne possède pas
144       d'OID.)
145      </para>
146     </listitem>
147    </varlistentry>
148
149    <varlistentry>
150     <term><replaceable class="parameter">délimiteur</replaceable></term>
151     <listitem>
152      <para>
153       Le caractère simple qui sépare les colonnes pour chaque ligne d'un
154       fichier. La valeur par défaut est le caractère de tabulation.
155      </para>
156     </listitem>
157    </varlistentry>
158
159    <varlistentry>
160     <term><replaceable class="parameter">chaîne NULL</replaceable></term>
161     <listitem>
162      <para>
163       La chaîne qui représente une valeur NULL. Par défaut, elle vaut
164       <literal>\N</literal> (antislash-N). Vous pourriez préférer une chaîne
165       vide par exemple.
166      </para>
167
168      <note>
169       <para>
170        Sur un <command>COPY FROM</command>, tout élément de données
171        correspondant à cette chaîne sera stocké comme valeur NULL, donc vous
172        devriez vous assurer que vous utilisez la même chaîne que celle que vous
173        avez utilisé avec <command>COPY TO</command>.
174       </para>
175      </note>
176     </listitem>
177    </varlistentry>
178   </variablelist>
179  </refsect1>
180
181  <refsect1>
182   <title>Notes</title>
183
184    <para>
185     <command>COPY</command> peut seulement être utilisé avec des tables réelles,
186     pas avec des vues.
187    </para>
188
189    <para>
190     Le mot clé <literal>BINARY</literal> fait que toutes les données sont
191     stockées/lues dans le format binaire plutôt qu'en texte. Il est un peu
192     plus rapide que le mode texte standard mais un fichier binaire est moins
193     portable au travers des architectures machine et des versions de
194     <productname>PostgreSQL</productname>.
195    </para>
196
197    <para>
198     Vous devez avoir le droit SELECT sur la table dont les valeurs sont
199     lues par <command>COPY TO</command> et le droit INSERT sur la table dont les
200     valeurs sont insérées par <command>COPY FROM</command>.
201    </para>
202
203    <para>
204     Les fichiers nommés dans une commande <command>COPY</command> sont lus ou
205     écrits directement par le serveur, et non pas par l'application cliente. Du
206     coup, ils doivent résider ou être accessible par la machine du serveur de
207     bases de données. Ils doivent être accessibles et lisibles ou modifiables
208     par l'utilisateur <productname>PostgreSQL</productname> (l'identifiant de
209     l'utilisateur qui a exécuté le serveur), et non pas par le client.
210     <command>COPY</command> nommant un fichier est seulement autorisé pour les
211     superutilisateurs de la base de données car il autorise la lecture ou
212     l'écriture de tout fichier auquel a accès le serveur.
213    </para>
214
215    <para>
216     Ne confondez pas <command>COPY</command> avec l'instruction
217     <command>\copy</command> de <application>psql</application>.
218     <command>\copy</command> appelle <command>COPY FROM STDIN</command> ou
219     <command>COPY TO STDOUT</command>, puis récupère/stocke la donnée dans un
220     fichier accessible au client <application>psql</application>. Du coup,
221     l'accès au fichier et les droits d'accès dépendent du client plutôt que du
222     serveur quand <command>\copy</command> est utilisé.
223    </para>
224
225    <para>
226     Il est recommandé que le nom du fichier utilisé dans
227     <command>COPY</command> soit toujours utilisé avec un chemin absolu. Ceci
228     est renforcé par le serveur dans le cas d'un <command>COPY TO</command>
229     mais, pour les <command>COPY FROM</command>, vous devez avoir l'option de
230     lire à partir d'un fichier spécifié par un chemin relatif. Le chemin sera
231     interprété de façon relative au répertoire de travail du processus serveur
232     (quelque part en-dessous du répertoire de données), pas dans le répertoire
233     de travail du client.
234    </para>
235
236    <para>
237     <command>COPY FROM</command> appellera tout déclencheur et vérifiera les
238     contraintes sur la table de destination. Néanmoins, il n'appellera pas les
239     règles.
240    </para>
241
242    <para>
243     <command>COPY</command> stoppe l'opération à la première erreur. Ceci ne
244     devrait apporter aucun problème dans le cas d'un <command>COPY TO</command>
245     mais la table cible aura déjà reçu des lignes précédentes dans un
246     <command>COPY FROM</command>. Ces lignes ne seront pas visibles ou
247     accessibles mais elle occuperont toujours de l'espace disque. Ceci pourrait
248     totaliser une perte considérable d'espace disque si l'échec arrivait lors
249     d'une grande opération de copie. Vous pourriez souhaiter appeler
250     <command>VACUUM</command> pour récupérer l'espace perdu.
251    </para>
252  </refsect1>
253
254  <refsect1>
255   <title>Formats de fichiers</title>
256
257   <refsect2>
258    <title>Format texte</title>
259
260    <para>
261     Quand <command>COPY</command> est utilisé sans l'option
262     <literal>BINARY</literal>, les données lues ou écrites sont dans un fichier
263     avec une ligne de données par ligne de la table. Les colonnes d'une ligne
264     sont séparées par le caractère délimiteur. Les valeurs des colonnes sont des
265     chaînes générées par la fonction de sortie ou acceptables par la fonction
266     d'entrée de chaque type de données d'attribut. La chaîne NULL spécifiée est
267     utilisée à la place des colonnes NULL. <command>COPY FROM</command> lèvera
268     une erreur si une des lignes du fichier en entrée contient plus ou moins de
269     colonnes qu'attendues. Si <literal>OIDS</literal> est spécifié, l'OID est lu
270     ou écrit dans la première colonne, précédant ainsi les colonnes de données
271     de l'utilisateur.
272    </para>
273
274    <para>
275     La fin des données peut être représentée par une simple ligne contenant
276     juste un antislash et un point (<literal>\.</>). Un marqueur de fin de
277     données n'est pas nécessaire lors de la lecture d'un fichier car la fin du
278     fichier sert bien&nbsp; il est seulement nécessaire lors de la copie de
279     données vers ou à partir d'une application cliente en utilisant le protocole
280     client pre-3.0.
281    </para>
282
283    <para>
284     Les caractères antislash (<literal>\</>) pourraient être utilisés dans les
285     données <command>COPY</command> pour mettre entre guillemets les données de
286     caractères qui pourraient sinon être prises comme délimiteurs de ligne ou de
287     colonne. En particulier, les caractères suivants <emphasis>doivent</> être
288     précédés par un antislash s'ils apparaissent comme faisant partie de la
289     valeur d'une colonne&nbsp;: antislash lui-même, nouvelle ligne, retour
290     chariot et caractère délimiteur actuel.
291    </para>
292
293    <para>
294     La chaîne NULL spécifiée est envoyée par <command>COPY TO</command> sans
295     ajout d'antislash&nbsp;; au contraire, <command>COPY FROM</command> fait
296     correspondre l'entrée avec la chaîne NULL avant de supprimer les antislash.
297     Du coup, une chaîne NULL telle que <literal>\N</literal> ne peut pas être
298     confondu avec la valeur de donnée réelle <literal>\N</literal> (qui serait
299     représentée par <literal>\\N</literal>).
300    </para>
301
302    <para>
303     Les séquences spéciales suivantes sont reconnues par <command>COPY
304     FROM</command>&nbsp;:
305
306    <informaltable>
307     <tgroup cols="2">
308      <thead>
309       <row>
310        <entry>Séquence</entry>
311        <entry>Représenté</entry>
312       </row>
313      </thead>
314
315      <tbody>
316       <row>
317        <entry><literal>\b</></entry>
318        <entry>Suppression (ASCII 8)</entry>
319       </row>
320       <row>
321        <entry><literal>\f</></entry>
322        <entry>Retour chariot (ASCII 12)</entry>
323       </row>
324       <row>
325        <entry><literal>\n</></entry>
326        <entry>Nouvelle ligne (ASCII 10)</entry>
327       </row>
328       <row>
329        <entry><literal>\r</></entry>
330        <entry>Retour chariot (ASCII 13)</entry>
331       </row>
332       <row>
333        <entry><literal>\t</></entry>
334        <entry>Tabulation (ASCII 9)</entry>
335       </row>
336       <row>
337        <entry><literal>\v</></entry>
338        <entry>Tabulation verticale (ASCII 11)</entry>
339       </row>
340       <row>
341        <entry><literal>\</><replaceable>chiffres</></entry>
342        <entry>Un antislash suivi par un à trois chiffres en octal spécifie le
343          caractère ayant ce code numérique</entry>
344       </row>
345      </tbody>
346     </tgroup>
347    </informaltable>
348
349     Actuellement, <command>COPY TO</command> n'émettra jamais une séquence
350     octale mais utilisera les autres séquences listées ci-dessus pour les
351     caractères de contrôle.
352    </para>
353
354    <para>
355     Tout autre caractère avec un antislash se représentera lui-même.
356     Néanmoins, attention à l'ajout non nécessaire d'antislash car cela
357     pourrait produire accidentellement une correspondance de chaîne avec
358     le marqueur de fin de données (<literal>\.</>) ou la chaîne NULL
359     (<literal>\N</> par défaut). Ces chaînes seront reconnues avant tout
360     traitement des antislashs.
361    </para>
362
363    <para>
364     Il est fortement recommandé que les applications générant des données COPY
365     convertissent les nouvelles lignes et retours chariot avec les séquences
366     <literal>\n</> et <literal>\r</>, respectivement. À présent, il
367     est possible de représenter un retour chariot par un antislash et un retour
368     chariot, et de représenter une nouvelle ligne par un antislash et une
369     nouvelle ligne. Néanmoins, ces représentations pourraient ne pas être
370     acceptées dans les prochaines versions. Elles sont aussi hautement
371     vulnérables à la corruption si le fichier COPY est transféré via différentes
372     machines (par exemple, à partir d'un Unix vers un Windows ou vice versa).
373    </para>
374
375    <para>
376     <command>COPY TO</command> terminera chaque ligne avec une
377     nouvelle ligne style Unix (<quote><literal>\n</></>). Les serveurs
378     fonctionnant avec MS Windows terminent la ligne avec un retour
379     chariot/nouvelle ligne
380     (<quote><literal>\r\n</></>) mais seulement pour <command>COPY</> dans un
381     fichier serveur&nbsp;; pour des raisons de cohérence au niveau des
382     plateformes, <command>COPY TO STDOUT</> envoie toujours
383     <quote><literal>\n</></> quelque soit la plateforme du serveur.
384     <command>COPY FROM</command> peut gérer des fin de lignes avec une nouvelle
385     ligne, un retour chariot ou un retour chariot suivi d'une nouvelle ligne.
386     Pour réduire les risques d'erreurs dûes à une nouvelle ligne ou un retour
387     chariot sans antislash qui étaient des données, <command>COPY FROM</command>
388     se plaindra si les fins de ligne dans l'entrée ne sont pas identiques.
389    </para>
390   </refsect2>
391
392   <refsect2>
393    <title>Format binaire</title>
394
395    <para>
396     Le format de fichier utilisé pour <command>COPY BINARY</command> a été
397     modifié dans <productname>PostgreSQL</productname> 7.4. Le nouveau format
398     consiste en un fichier d'en-tête, zéro ou plusieurs lignes contenant la
399     donnée de la ligne et une queue de fichier. Les en-têtes et les données sont
400     maintenant dans l'ordre d'octets du réseau.
401    </para>
402
403    <refsect3>
404     <title>En-tête du fichier</title>
405
406     <para>
407      Le fichier d'en-tête consiste en 15 octets de champs fixes, suivis par une
408      aire d'extension de l'en-tête de longueur variable. Les champs fixes
409      sont&nbsp;:
410
411     <variablelist>
412      <varlistentry>
413       <term>Signature</term>
414       <listitem>
415        <para>
416         séquence de 11 octets <literal>PGCOPY\n\377\r\n\0</> --- notez que
417         l'octet zéro est une partie requise de la signature. (La signature est
418         conçue pour permettre une identification aisée des fichiers qui ont été
419         déteriorés par un transfert qui ne s'est pas fait sur huit bits. Cette
420         signature sera modifiée par des filtres de traduction de fin de ligne,
421         suppression des octets zéro, suppression des bits de poids forts ou
422         modification de parité.)
423        </para>
424       </listitem>
425      </varlistentry>
426
427      <varlistentry>
428       <term>Champs de commutateurs</term>
429       <listitem>
430        <para>
431         masque entier de 32 bits dénotant les aspects importants du format de
432         fichier. Les bits sont numérotés de 0 (<acronym>LSB</>) à 31
433         (<acronym>MSB</>). Notez que ce champ est stocké dans l'ordre des octets
434         du réseau (l'octet le plus significatif en premier), comme le sont tous
435         les champs d'entier utilisés dans le format de fichier. Les bits 16 à 31
436         sont réservés pour dénoter les problèmes critiques de format de
437         fichier&nbsp;; un lecteur devrait annuler l'opération s'il trouve un bit
438         inattendu dans cet ensemble. Les bits 0 à 15 sont réservés pour signaler
439         des problèmes de compatibilité de formats&nbsp;; un lecteur devrait
440         simplement ignorer les bits inattendus dans cet ensemble. Actuellement,
441         seul un bit est défini et le reste doit être à zéro&nbsp;:
442         <variablelist>
443          <varlistentry>
444           <term>Bit 16</term>
445           <listitem>
446            <para>
447             si 1, les OID sont inclus dans la donnée&nbsp;; si 0, non
448            </para>
449           </listitem>
450          </varlistentry>
451         </variablelist>
452        </para>
453       </listitem>
454      </varlistentry>
455
456      <varlistentry>
457       <term>Longueur de l'aire d'extension de l'en-tête</term>
458       <listitem>
459        <para>
460         Entier sur 32 bits, longueur en octets sur le reste de l'en-tête, ne
461         s'incluant pas lui-même. Actuellement, c'est zéro et la première ligne
462         suit immédiatement. Les modifications futures du format pourraient
463         permettre la présence de données supplémentaires dans l'en-tête. Un
464         lecteur devrait passer silencieusement toute donnée dans l'extension de
465         l'en-tête s'il ne sait pas quoi faire avec.
466        </para>
467       </listitem>
468      </varlistentry>
469     </variablelist>
470     </para>
471
472     <para>
473      L'aire d'extension de l'en-tête devrait contenir une séquence de morceaux
474      qui s'identifient eux-même. Le champ des commutateurs n'a pas pour but
475      d'indiquer aux lecteurs ce qui se trouve dans l'aire d'extension. La
476      conception spécifique du contenu de l'extension de l'en-tête est laissée à
477      une prochaine version.
478     </para>
479
480     <para>
481      Cette conception permet des ajouts d'en-têtes compatibles (ajout de
482      morceaux d'extension d'en-tête, ou initialisation des options de faible
483      poids) et modifications non compatibles (initialisation des options de
484      poids pour signaler des modifications, et ajout des données de support dans
485      l'aire d'extension si nécessaire).
486     </para>
487    </refsect3>
488
489    <refsect3>
490     <title>Lignes</title>
491     <para>
492      Chaque ligne commence avec un compteur sur 16 bits du nombre de champs dans
493      la ligne. (Actuellement, toutes les lignes dans une table auront le même
494      compte mais ceci pourrait ne pas être toujours vrai.) Ensuite, répété pour
495      chaque champ de la ligne, il y a un mot de 32 bits suivi par autant
496      d'octets que de données. (Le mot clé n'inclut pas sa propre longueur et
497      peut donc valoir zéro.) Comme cas spécial, -1 indique une valeur de champ
498      NULL. Aucun octet de valeur ne suit dans le cas NULL.
499     </para>
500
501     <para>
502      Il n'y a pas d'ajout pour l'alignement ou toute autre donnée supplémentaire
503      entre les champs.
504     </para>
505
506     <para>
507      Actuellement, toutes les valeurs dans un fichier <command>COPY
508      BINARY</command> sont supposées être dans un format binaire (format code
509      un). Une future extension pourrait ajouter un champ d'en-tête qui autorise
510      la spécification des codes de format par colonne.
511     </para>
512
513     <para>
514      Pour déterminer le format binaire approprié pour la donnée réelle, vous
515      devriez consulter le source de <productname>PostgreSQL</productname>, en
516      particulier les fonctions <function>*send</> et <function>*recv</> pour
517      chaque type de données de la colonne (typiquement ces fonctions se
518      trouvent dans le répertoire <filename>src/backend/utils/adt/</filename> des
519      sources).
520     </para>
521
522     <para>
523      Si les OID sont inclus dans le fichier, le champ OID est immédiatement
524      suivi du compteur de champ. C'est un champ normal sauf qu'il n'est pas
525      inclus dans le champ compteur. En particulier, il a une longueur d'un mot
526      --- ceci permettra la gestion d'OID à quatre octets plutôt que huit sans
527      trop de peine et permettra l'affichage des OID comme NULL si cela se révèle
528      intéressant.
529     </para>
530    </refsect3>
531
532    <refsect3>
533     <title>Queue du fichier</title>
534
535     <para>
536      La fin du fichier consiste en un entier sur 16 bits contenant -1. Ceci est
537      facilement distingué du compteur de champ d'une ligne.
538     </para>
539
540     <para>
541      Un lecteur devrait rapporter une erreur si un mot de comptage de champ est
542      soit -1 soit le nombre attendu de colonnes. Ceci fournit une vérification
543      supplémentaire sur quelque chose pouvant être hors synchronisation avec les
544      données.
545     </para>
546    </refsect3>
547   </refsect2>
548  </refsect1>
549
550  <refsect1>
551   <title>Exemples</title>
552
553   <para>
554    L'exemple suivant copie une table vers le client en utilisant la barre
555    verticale (<literal>|</literal>) comme délimiteur de champ&nbsp;:
556 <programlisting>
557 COPY pays TO STDOUT WITH DELIMITER '|';
558 </programlisting>
559   </para>
560
561   <para>
562    Pour copier des données de la table <literal>pays</> vers un fichier&nbsp;:
563 <programlisting>
564 COPY pays FROM '/usr1/proj/bray/sql/pays_donnees';
565 </programlisting>
566   </para>
567
568   <para>
569    Voici un exemple de données convenable pour une table provenant de
570    <literal>STDIN</literal>&nbsp;:
571 <programlisting>
572 AF      AFGHANISTAN
573 AL      ALBANIA
574 DZ      ALGERIA
575 ZM      ZAMBIA
576 ZW      ZIMBABWE
577 </programlisting>
578    Notez que l'espace blanc sur chaque ligne est en fait un caractère de
579    tabulation.
580   </para>
581
582   <para>
583    Ce qui suit représente les même données, au format binaire. La donnée est
584    affichée après filtrage à travers l'outil Unix <command>od -c</command>. La
585    table a trois colonnes&nbsp;; la première est de type <type>integer</type>.
586    Toutes les lignes ont une valeur NULL sur la troisième colonne.
587 <programlisting>
588 0000000   P   G   C   O   P   Y  \n 377  \r  \n  \0  \0  \0  \0  \0  \0
589 0000020  \0  \0  \0  \0 003  \0  \0  \0 002   A   F  \0  \0  \0 013   A
590 0000040   F   G   H   A   N   I   S   T   A   N 377 377 377 377  \0 003
591 0000060  \0  \0  \0 002   A   L  \0  \0  \0 007   A   L   B   A   N   I
592 0000100   A 377 377 377 377  \0 003  \0  \0  \0 002   D   Z  \0  \0  \0
593 0000120 007   A   L   G   E   R   I   A 377 377 377 377  \0 003  \0  \0
594 0000140  \0 002   Z   M  \0  \0  \0 006   Z   A   M   B   I   A 377 377
595 0000160 377 377  \0 003  \0  \0  \0 002   Z   W  \0  \0  \0  \b   Z   I
596 0000200   M   B   A   B   W   E 377 377 377 377 377 377
597 </programlisting>
598   </para>
599  </refsect1>
600
601  <refsect1>
602   <title>Compatibilité</title>
603
604   <para>
605    Il n'existe pas d'instruction <command>COPY</command> dans le standard SQL.
606   </para>
607
608   <para>
609    La syntaxe suivante était utilisée avant PostgreSQL version 7.3 et est
610    toujours supportée&nbsp;:
611
612 <synopsis>
613 COPY [ BINARY ] <replaceable class="parameter">nomtable</replaceable> [ WITH OIDS ]
614     FROM { '<replaceable class="parameter">nomfichier</replaceable>' | STDIN }
615     [ [USING] DELIMITERS '<replaceable class="parameter">délimiteur</replaceable>' ]
616     [ WITH NULL AS '<replaceable class="parameter">chaîne NULL</replaceable>' ]
617
618 COPY [ BINARY ] <replaceable class="parameter">nomtable</replaceable> [ WITH OIDS ]
619     TO { '<replaceable class="parameter">nomfichier</replaceable>' | STDOUT }
620     [ [USING] DELIMITERS '<replaceable class="parameter">délimiteur</replaceable>' ]
621     [ WITH NULL AS '<replaceable class="parameter">chaîne NULL</replaceable>' ]
622 </synopsis>
623   </para>
624  </refsect1>
625 </refentry>
626
627 <!-- Keep this comment at the end of the file
628 Local variables:
629 mode: sgml
630 sgml-omittag:nil
631 sgml-shorttag:t
632 sgml-minimize-attributes:nil
633 sgml-always-quote-attributes:t
634 sgml-indent-step:1
635 sgml-indent-data:t
636 sgml-parent-document:nil
637 sgml-default-dtd-file:"../reference.ced"
638 sgml-exposed-tags:nil
639 sgml-local-catalogs:"/usr/lib/sgml/catalog"
640 sgml-local-ecat-files:nil
641 End:
642 -->
Note: See TracBrowser for help on using the browser.