Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 02 September 2015 14:45

Pierre.Brochard
Participant occasionnel
Date d'inscription: 8 Apr 2015
Messages: 33

Alimenter une base depuis une autre -- dblink

Bonjour à tous,

Voici ma problématique.

Je travail sur 2 serveurs dictincts.
Sur mon premier serveur je possède une base (d'alimentation) qui contient les données. (base.1)
Depuis cette première base j'ai créé une requête conséquente qui contient l'ensemble de mes données. (base.2)
Sur ma deuxième base j'ai créer une table pour accueillir ces données.

Je viens de découvrir dblink.

J'ai :



from dblink_connect ('hostaddr=adresse base.1 port=5432 dbname= mabase1  user=user_base.1 password= password_base.1);
insert into  base.2(column.1 (base.1), column.2 (base.1).... column.23(base.1))


SELECT *
    FROM dblink('hostaddr=adresse base.1 port=5432 dbname= mabase2  user=user_base.2 password= password_base.2)

   select remote_column1 ltrim(remote_column2, ''TEST'') from edealPLFOR
       where base.2 ilike ''TEST%'' 
) as t(column1.(base.1)  as varchar,column2.(base.1)  as varcharcharacter varying(30)) ;

J'ai le message d'erreur suivant :


'la fonction dblink(unknown, unknown) n'existe pas'



Pourriez vous m'aider.

Hors ligne

 

#2 Wed 02 September 2015 16:10

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 567
Site web

Re: Alimenter une base depuis une autre -- dblink

Bonjour,

Il faut installer l'extension avec

Code:

CREATE EXTENSION dblink

mais il est maintenant recommandé d'utiliser les Foreign Data Wrappers (postgres_fdw).
voir à ce sujet http://docs.postgresqlfr.org/9.4/postgres-fdw.html


Jean-Marie
Azimut

Hors ligne

 

#3 Wed 02 September 2015 17:08

Pierre.Brochard
Participant occasionnel
Date d'inscription: 8 Apr 2015
Messages: 33

Re: Alimenter une base depuis une autre -- dblink

D'accord. Je vous remercie. Je vais me pencher sur la doc du coup.

Pierre

Hors ligne

 

#4 Thu 03 September 2015 15:22

Pierre.Brochard
Participant occasionnel
Date d'inscription: 8 Apr 2015
Messages: 33

Re: Alimenter une base depuis une autre -- dblink

Je reviens vers vous car finalement je suis resté sur l'idée du dblink. Fonction de ma version postgis.

SELECT *
from dblink_connect('maconnexion','host=10.118.20.201 port=5432 dbname= nombase.1 user=user password= passwordl')


       
INSERT INTO table2                    -- entrer la table cible            
from dblink ('maconnexion',            -- colonne octagri concernée
'select table1.colonne1 from table1')             -- sélection sql octagri
as table2(prestation character varying(30))
where libellé colonne table2 like '%PLAN%';    -- colonne



A partir du insert into les erreurs apparaissent.
Connaîtriez vous la manière d'opérer.

Merci.

Hors ligne

 

#5 Thu 03 September 2015 16:38

JP LLORENS
Participant assidu
Date d'inscription: 12 Nov 2008
Messages: 231

Re: Alimenter une base depuis une autre -- dblink

Bonjour.
J'aurai tendance à écrire :
INSERT into matable (monattribut) (select table2.prestation from dblink (...)as table2(...) where maclause)

Cordialement
JP

Dernière modification par JP LLORENS (Thu 03 September 2015 16:40)

Hors ligne

 

#6 Tue 08 September 2015 11:39

Pierre.Brochard
Participant occasionnel
Date d'inscription: 8 Apr 2015
Messages: 33

Re: Alimenter une base depuis une autre -- dblink

Merci.

Cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB