PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#2 Général » exportation dans un fichier CSV à partir de plusieurs tables (COPY) » 14/09/2012 12:40:46

marcandre
Réponses : 3

Bonjour à tous,

Je voudrais savoir est-ce qu'il est possible de copier des données à partir de plusieurs tables en jointure vers un seul fichier CSV ?

Si oui, serait t-il possible d'avoir la syntax exacte du code ?

En vous remerciant d'avance .

Cordialement .

#3 Général » Importation des nombres décimaux à virgule via COPY » 15/05/2012 10:24:30

marcandre
Réponses : 5

Bonjour à tous,


J'ai une procédure stockée permettant d'importer un fichier CSV vers une table, via la commande COPY .

Seulement voilà le fichier CSV à importer peut contenir des nombres décimaux à virgule . Si c'est le cas, celà me génère une erreur de la façon suivante :


invalid input syntax for type real: "66,11"
CONTEXT:  COPY ma_table, line 2, column ma_colonne: "66,11"


Je souhaite savoir est ce qu'il y a un moyen de contourner ce problème de convertion de façon à remplacer les virgules par des points pour les nombres décimaux ?
J'utilise Postgres 8.4 .

En vous remerciant d'avance .
Cordialement .

#5 Général » Appel et exécution d'une procédure stockée. » 13/02/2012 13:41:57

marcandre
Réponses : 2

Bonjour à tous,

Je suis en train de débuter sur les procédures stockées de Postgres .

J'ai appelé la fonction ci dessous :

CREATE OR REPLACE FUNCTION ma_fonction() RETURNS void AS
$$
DECLARE
   ma_colonnne integer;
BEGIN
    FOR ma_colonnne IN select distinct colonne1 from ma_table order by colonne1 LOOP
        RAISE NOTICE 'cette colonne a pour valeur %', ma_colonnne;
  END LOOP;
END
$$
LANGUAGE 'plpgsql';

Via un fichier SQL

# ./psql -f /dossier/fichier.sql ma_base -U postgres -h 127.0.0.1

J'ai un message me disant que la fonction a été  créée (CREATE FUNCTION), cependant je voudrais savoir comment peut-on exécuter la fonction créée ?

Cordialement .

#6 Re : Général » Fichier CSV avec un nombre de colonnes variables » 09/02/2012 14:50:42

Merci,

Le souci s'est qu'il y aura de nombreux fichiers CSV différents en terme de compositions des colonnes facultatives (il existera de nombreuses combinaisons de colonnes complétées ou non) , il faut prévoir de nombreuses requêtes par conséquence .

Est ce qu'il est possible de faire un module (ou une procédure stockée) permettant de créer une requête de façon dynamique en fonction du fichier CSV à lire ?

Cordialement .

#7 Général » Fichier CSV avec un nombre de colonnes variables » 08/02/2012 19:13:52

marcandre
Réponses : 3

Bonjour à tous,

Je souhaite faire une importation de données provenant d'un fichier CSV vers une table sous Postgres .

Seulement voilà le fichier CSV peut avoir un nombre variable de colonnes car il existe des colonnes facultatives dans ce dernier.

La table recevant les données possède différentes colonnes :

Colonne A, ColonneB, ColonneC qui sont obligatoires (ces colonnes reçoivent toujours des données quelque soit les fichier CSV)

Les Colonnes facultatives : ColonneD, ColonneE, ColonneF, ColonneG

Seulement voilà le fichier CSV "alimente" la table par les colonnes ColonneA, ColonneB, ColonneC mais le fichier CSV peut alimenter que certaine des colonnes facultatives (ColonneD ou ColonneE ou ColonneF ou ColonneG) .

Voici comment les fichiers CSV peuvent être construite pour alimenter la table :

Fichier CSV 1 : Colonne A;ColonneB;ColonneC;ColonneD;ColonneE;ColonneF;ColonneG

Fichier CSV 2 : Colonne A;ColonneB;ColonneC

Fichier CSV 3 : Colonne A;ColonneB;ColonneC;ColonneD;ColonneE

Fichier CSV 4 : Colonne A;ColonneB;ColonneC;ColonneE;ColonneG

Fichier CSV 5 : Colonne A;ColonneB;ColonneC;ColonneG

Je souhaite savoir comment puis-je faire en sorte que le module d'importation des données dans table puisse s'adapter aux colonnes des fichiers CSV renseignés ?

Cordialement .

#8 Re : Général » Attribution d'une date d'importation à l'exécution de la commande COPY » 06/01/2012 18:50:40

Merci pour ce renseignement,

j'ai essayé la ligne de code, ça fonctionne.

Chaque donnée importée reçois la date d'importation .

A bientôt .

#9 Général » Attribution d'une date d'importation à l'exécution de la commande COPY » 06/01/2012 17:37:57

marcandre
Réponses : 2

Bonjour à tous,

Je fais des importations de données d'un fichier CSV vers une table grâce à la commande COPY, voici la syntaxe suivante :

ALTER TABLE ma_table ALTER COLUMN colonne4 SET DEFAULT 'ma valeur';
COPY ma_table(colonne1,colonne2,colonne3,colonne4,colonne5) FROM '/dossier/mon_fichier.csv' DELIMITER AS ';' NULL AS '' CSV HEADER QUOTE AS '"';

Les données sont importées vers les colonne1, colonne2 et colonne3 depuis le fichier CSV . La colonne 4 reçoit une valeur par défaut .

Je voudrais que la colonne de la table colonne5 reçoive une date d'importation . Comment puis-je affecter une date d'importation par défaut à la colonne colonne5 ?

J'ai essayé de  faire la syntaxe suivante pour attribuer une date d'importation par défaut :

ALTER TABLE ma_table ALTER COLUMN colonne5 SET DEFAULT TIMESTAMP

mais j'ai un message d'erreur .

Cordialement .

#10 Re : Général » Commande Copy et renseignement d'une colonne hors fichier CSV » 17/11/2011 17:00:24

Par contre, je suis amené à faire une routine d'importations des données de plusieurs fichiers CSV. La colonne col4 peut changer de valeur en fonction du fichier CSV a importer, comment puis je faire dans ce cas ?

Cordialement .

#11 Général » Commande Copy et renseignement d'une colonne hors fichier CSV » 17/11/2011 16:43:36

marcandre
Réponses : 6

Bonjour à tous,

Je souhaite savoir par l'intermédiaire de la copy est ce que l'on peut renseigner une colonne avec une valeur constante .

Voici la commande suivante

COPY matable(col1, col2, col3,col4) FROM '/dossier/fichier.csv' DELIMITER AS ';' NULL AS '' CSV HEADER QUOTE AS '"'

J'ai les colonnes col1, col2 et col3 de la table matable qui importent les renseignements venant des colonnes du fichier CSV . Seule La colonne col4 n'importe pas les données venant du fichier CSV mais il reçoit une valeur constante .

Peut on importer des données sur ces colonnes (col1,col2 et col3) tout en renseignant la colonne col4 avec une valeur constante ?

Cordialement .

#12 Re : PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 17/11/2011 14:27:39

Merci pour votre aide, pour le paramètre -h j'ai en effet spécifié l'adresse IP de locahost (127.0.0.1),
la commande ne me demande pas le mot de passe en mettant -h 127.0.0.1 et la requête spécifiée dans le fichier .sql s'exécute normalement .

Cordialement

#14 Re : PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 17/11/2011 12:42:17

J'ai lancé un chmod pour ne rendre accessible que par postgres :
voici la liste des fichiers y compris .pgpass dans  le dossier : /opt/PostgresPlus/8.4SS

[root@ma_machine 8.4SS]# ls -la
total 10668
drwxr-xr-x 19 root     daemon      4096 nov 17 11:12 .
drwxr-xr-x  4 root     root        4096 oct 28 11:19 ..
drwxr-xr-x  2 root     daemon      4096 jui 23  2010 bin
drwx------ 12 postgres postgres    4096 jui  2 13:39 data
drwxr-xr-x  4 root     daemon      4096 jui 23  2010 doc
drwxr-xr-x  5 root     daemon      4096 jui 23  2010 include
drwxr-xr-x  4 root     daemon      4096 jui 23  2010 installer
drwxr-xr-x  3 root     daemon      4096 jui 23  2010 lib
drwxr-xr-x  5 root     daemon      4096 jui 23  2010 pgAdmin3
drwxr-xr-x  6 root     root        4096 jui 23  2010 pgAgent
drwxr-xr-x  8 root     root        4096 jui 23  2010 pgbouncer
drwxr-xr-x  4 root     root        4096 jui 23  2010 pgJDBC
-rw-------  1 postgres postgres      41 nov 17 11:09 .pgpass
drwxr-xr-x  6 root     root        4096 jui 23  2010 PostGIS
drwxr-xr-x  5 root     root        4096 jui 23  2010 psqlODBC
drwxr-xr-x  4 root     daemon      4096 jui 23  2010 scripts
drwxr-xr-x  5 root     daemon      4096 jui 23  2010 share
drwxr-xr-x  4 root     root        4096 jui 23  2010 Slony
drwxr-xr-x  4 root     daemon      4096 jui 23  2010 stackbuilder
drwxr-xr-x  7 root     root        4096 jui 23  2010 StackBuilderPlus
-rwx------  1 root     root     3554060 jui 23  2010 uninstall-pgmemcache
-rwx------  1 root     root     3651756 jui 23  2010 uninstall-postgresplus
-rwx------  1 root     daemon   3617918 jui 23  2010 uninstall-postgresql

J'ai avant effectué une exécution d'une commande :

chmod 600 ~/.pgpass

après m'être loggué en tant que postgres :

su - postgres

#15 Re : PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 17/11/2011 12:20:41

Bonjour à tous,

Je reviens vers vous en ce qui concerne le mot de passe demandé .
En effectuant une commande cat /etc/passwd je retrouve la ligne :

postgres:x:502:502:PostgreSQL:/opt/PostgresPlus/8.4SS:/bin/bash

j'ai .pgpass qui est dans le dossier /opt/PostgresPlus/8.4SS .
J'ai modifié le contenu du fichier .pgpass, j'ai mis

localhost:5432:*:postgres:motdepasse

au lieu de

localhost:5432:postgres:postgres:motdepasse

En effectuant la commande :

./psql -f /dossier_script_sql/script.sql mabase -U postgres

, j'ai toujours la réponse de la commande qui me demande le mot de passe .
Cordialement .

#16 Re : PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 12/11/2011 13:05:39

Le répertoir personnel de l'utilisateur postgres est /opt/PostgresPlus/8.4SS/ sachant que j'utilise root pour exécuter . Tandis que dans le répertoir personnel de root j'ai le contenu de .pgpass :

127.0.0.1:5432:*:postgres:motdepasse

#17 Re : PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 12/11/2011 12:25:43

Merci pour l'information .

Comment peut on indiquer qu'il faut utiliser le fichier .pgpass sachant qu'il se trouve dans le dossier :

/opt/PostgresPlus/8.4SS/

Cordialement .

#18 PSQL » Envoi d'un mot de passe via un script Shell pour exécution code SQL » 12/11/2011 12:02:07

marcandre
Réponses : 13

Bonjour à tous,

Je suis en train de faire un script shell qui permettra d'importer des données à partir un fichier texte .
Seulement voilà la response de la commande me demande de rentrer un mot de passe, mais je voudrais envoyer le mot de passe de façon automatique .
Comment puis je faire .

J'ai créé un script shell par la commande vi voici le contenu du script shell :

cd /opt/PostgresPlus/8.4SS/bin/
./psql -f /dossier_script_sql/script.sql mabase -U postgres
"c'est là où j'envoi le mot de passe"

Cordialement.

#19 Installation » Mise à niveau de Postgres de la version 8.4 à la version 9.0 » 03/11/2011 13:23:53

marcandre
Réponses : 1

Bonjour à tous,

J'ai actuellement une version de Postgres 8.4 plus Standard Server que j'ai pris sur le site d'EnterpriseDB .

Je souhaite savoir comment peut on passer à la version plus réscente Postgres 9.0 plus Standard Server, je voudrais remplacer la 8.4 par la version 9.0 .

Le SGBD est sous environnement CentOS 5.2 .

Cordialement .

#20 Migration » Migration de SQL Server vers PostGreSQL » 03/05/2009 15:25:04

marcandre
Réponses : 2

Bonjour à tous,

Je souhaite savoir est ce qu'il existe une (ou des) solution(s) pour pouvoir de migrer depuis SQL Server 2000 vers le SGBDR de PostGreSQL.

Sachant que j'ai un certain nombre de tables qui contiennent pas mal de lignes, des procédures stockées et des fonctions qui existent sous SQL Server, ainsi que des DTS (Data Transfert Service) qui sont chargés d'importer des données depuis un fichier texte formaté vers les tables de SQL Servers .

Quelle sont les modalités d'importations pour les différents objets (tables, procédures stockées, DTS) ?

Existe t'il sur PostGreSQL un équivalant au DTS de SQL Server qui permet d'importer des données vers le SGBDR à partir d'un fichier .

En vous remerciant d'avance.

Cordialement.

Pied de page des forums

Propulsé par FluxBB