Bonjour
Comment je peux faire une requête select sur deux bases de données oracle en utilisant OCI
Merci
Version imprimable
Bonjour
Comment je peux faire une requête select sur deux bases de données oracle en utilisant OCI
Merci
avec un copier coller du manuel et en dédoublant la variable "$conn"
http://php.net/manual/fr/function.oci-parse.php
j ai deux chaines de connexions
avec la commande oci en specifie le nom d une chaine seulement .. j ai pa compris comment le faire
tu dédoubles les variables pour se connecter (ou les objects PDO). Ou est la difficulté?
si je reprends l'exemple, on se retrouve avec $conn remplacé par $conn1 et $conn2. ici je fais 2 connection à la meme base, mais on peut tres bien faire deux connections à deux bases. ça sera séquentiel dans le code, évidement.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $conn1 = oci_connect('hr', 'welcome', 'localhost/XE'); $conn2 = oci_connect('scott', 'tiger', 'localhost/XE'); // Analyse de la requête. Notez qu'il n'y a pas de point-virgule à la fin de la requête SQL $stid = oci_parse($conn1, 'SELECT * FROM employees'); oci_execute($stid); echo "<table border='1'>\n"; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { echo "<tr>\n"; foreach ($row as $item) { echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n"; } echo "</tr>\n"; } echo "</table>\n";
merci à .. je sais comment faire deux chaines de connexion mais j ai une requete dont je fais une jointure de deux tables chacune se trouve dans une base
comment faire ça
je suis toujours pas sur d'avoir compris la question. Si ta question c'est comment faire une requete avec une jointure entre deux tables issues de deux bases distinctes, la réponse c'est tu peux pas avec OCI.
- Soit tu fais un select sur ta base de droite, un select sur la base de gauche et tu joints les résultats à la main en PHP
- Soit tu utilises un dblink (https://docs.oracle.com/cd/E18283_01...oncepts002.htm) de la base la plus pratique vers la base la moins pratique et tu fais la jointure dans la requete en passant par le dblink. Un dblink ça peut vitre être un réservoir à problème donc à faire avec modération.
- Soit tu fais en sorte de centraliser tes données dans un meme shéma d'une seule base via une collecte de données/ETL