PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Psql 8.3 : Limitation du nombre de lignes

Technique - windows | Psql 8.3 : Limitation du nombre de lignes

Par AB_Sniper le 24/07/2008 - 16:54

Bonjour,

Nous avons un serveur PostgreSQL et nous voulons récupérer les données dans un fichier. Pour cela nous utilisons la commande suivante :

psql -h *** -U *** -d *** -c "select * from mails where date_mail >= to_date('DATE', 'DD/MM/YYYY')" > mails.txt

Nous n'utilisons pas la fonction COPY car la version psql du serveur ne la reconnait pas.

Lors des essais sur mon poste, tout se passait correctement. Par contre dès que l'on a voulu passer sur le serveur, les fichiers générés ne dépassaient plus 65535 lignes avec le terme "-- Suite --" à la fin...

Je suppose que cela vient de la configuation de psql, mais je ne trouve pas de fichier de configuration...
J'ai copié le dossier 8.3 de mon poste vers le serveur en espérant que mes configurations soient aussi copiées, mais nous avons toujours le même problème...

Auriez-vous une solution ?

Merci d'avance.

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour Pour la config de ps

bustaf/ = 25 Juillet, 2008 - 16:46

Bonjour
Pour la config de psql je ne sais pas ..
pour vous depanner
divisez via votre requete le nombre potentiel de lignes sorties
1 requete (> mails.txt)
Requetes suivantes (>> mails.txt)
le (>>) pour cumuler les resultats dans votre fichier unique mails.txt..
Cordialement


interception des défilements

SAS/ = 28 Juillet, 2008 - 11:21

Bonjour,

J'ai crû comprendre que vous utilisez le client psql de Windows.

Première question : Vous dîtes que la commande COPY ne fonctionne pas. Pourriez-vous nous en dire plus ?

Deuxièmement, il semblerait que votre client ne comprenne pas la redirection dans un fichier et que vous récupériez la première page de données, avec l'instruction d'attente avant l'affichage de la seconde page.

Est-il possible dans ce cas de désactiver la fonction "pager" de psql ?

J'ai essayé une requête identique en console sous linux, aucun souci, le fichier contenait mes 1933778 lignes.

Pouvez-vous tester l'option de redirection en ligne de commande (psql -h *** -U *** -d *** -c "select * from mails where date_mail >= to_date('DATE', 'DD/MM/YYYY')" -o mails.txt).

Librement,
Stéphane Schildknecht
Dalibo
PostgreSQLFr


Bonjour, Merci pour vos r

AB_Sniper/ = 28 Juillet, 2008 - 14:27

Bonjour,

Merci pour vos réponses, j'ai utilisé l'option de redirection et tout marche à merveille maintenant.

En ce qui concerne la commande COPY, je l'ai testé au début, mais elle ne marchait pas. J'ai vu dans la documentation que la version qui était installée sur le serveur ne la supportait pas, et étant donné que nous ne pouvions pas l'upgrader, nous avons décidé de nous en passer.

Je pense aussi que le client ne comprenait pas la redirection, mais où pouvons nous désactiver la fonction "pager" ? (par curiosité étant donné que l'option -o fonctionne)

Merci pour tout !


Désactiver le pager

SAS/ = 28 Juillet, 2008 - 16:50

Sous Linux, vous pouvez utiliser la commande unset PAGER en shell. Sous windows, j'avoue ne pas savoir. Toutefois, il semble que le pager interne reste actif dans ce cas.

Il faut alors le désactiver au sein du client psql à l'aide de la commande interne

\pset pager off

La difficulté va alors consister à faire comprendre au client qu'il doit accepter deux commandes sur la même ligne... Ce qui relève de la gageure, l'une étant une commande interne, l'autre une requête.

Vous pouvez donc soit utiliser un fichier de configuration utilisateur qui contiendra une ligne de la forme
\pset pager off

ou sur la ligne de commande écrire

psql -P pager=off ...

Librement,
Stéphane Schildknecht
Dalibo
PostgreSQLFr


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.