Vous n'êtes pas identifié(e).
Pages : 1
Merci pour ces informations, je vais l'essayer .
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 .
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 .
Merci beaucoup.
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 .
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 .
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 .
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 .
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 .
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 .
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 .
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
Comment puisse je spécifier -h ?
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
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 .
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
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 .
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.
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 .
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.
Pages : 1