Bonjour,
il n'y a pas moyen de créer de façon permanante un "dblink" entre 2 bases Informix, c'est la requête sql qui va le faire en dynamique.
tu as plusieurs manières de faire:
1) l'autre base de données est dans la même instance, ici l'autre base est base1
1 2 3 4
| SELECT a.col1,a.col2,b.col1,b.col2
FROM base1:table1 a, table2 b
WHERE a.col3 = b.col3
AND .... |
2) l'autre base est dans une autre instance
1 2 3 4
| SELECT a.col1,a.col2,b.col1,b.col2
FROM base1@instance2:table1 a, table2 b
WHERE a.col3 = b.col3
AND .... |
Pour faire des queries multi-base, le deux bases doivent être toutes les deux soit journalisées, soit non journalisées(éventuellement mix entre buffered et non buffered log).
Pour simplifier le code, et éviter des vilaines choses en dur, tu peux aussi créer un synonyme dans la base 2 pour déclarer que la table1 est en fait dans la base 1
Dans le cas 2, instance2 doit être connue de l'instance courante, donc il faut effectivement la déclarer dans le fichier sqlhosts:
instance2 onsoctcp hostname2 tcp_service_name-ou_port#
Sinon cela n'est pas nécessaire
VOila
En avant!
Partager