Nota SPIP-Contrib : une contrib qui remonte initialement a août 2005 (post SPIP 1.9 donc), depuis de nombreuses choses on changé sur le code, en particulier pour le portage multibase, voir par exemple : Portage de SPIP en PostGres
Une contrib donc probablement à remanier et à aboutir, mais la preuve est déjà faite que c’est possible ... contributeurs à vos claviers
Interroger une base Oracle grâce au MultiBase
Après plusieurs heures de recherche, de debug, j’ai enfin réussi à interroger une base Oracle.
voici donc le résultat des mes investigations :
Prérequis
Une connexion à Oracle qui fonctionne,
- vérifiez que vous avez bien un client oracle installé sur votre machine
- que le fichier
TNSNAMES.ORAest bien configuré - que l’extension php est installée
dans le fichierphp.inisupprimer le point virgule devant extension;extension=php_oracle.dll
note : J’ai choisi de me connecter avec les commandes php Oracle ora, et non avec les commandes Oracle 8 oci, pas pour la simplicité du code, mais plutôt parce que je n’ai pas réussi a me connecter à ma base de tests avec les oci.
le fichier de connection et de traitement des boucles
j’ai créé un fichier inc_connect-ora.php3 avec pour début :
et avec les fonctions suivantes :
function spip_ora_select, notez la gestion de $limit différente de mysql.
function spip_ora_fetch , ne pas oublier de remettre le résultat en minusucules !!!
function spip_ora_count
function spip_ora_free
Définition des tables
dans le fichier monsquelette_fonctions.php3
note importante : il faut s’arranger pour que les tables définies dans le tableau $GLOBALS['tables_des_serveurs_sql'] n’aient pas le même noms que les tables de SPIP, pour cela j’ai préfixé toutes les tables de « ora_ » qui correspond au code de connexion du serveur ($table_ora['ora_articles'] =.
la boucle dans le squelette
Allez, je complique les choses et vais réaliser un lien entre les table ARTICLES et EPHEMERE_OPTIONS
articles.article = ephemeres_options.ephemere
TODO :
- Fermer proprement la connexion à la base oracle
- tester, tester, et encore tester... merci pour votre aide...
Remerciements
merci beaucoup à :
- mortimer
- Déesse A.
- Philippe Martin
pour leur aide...
N’hésitez pas a participer : ajouter vos commentaires, corrections, etc...
@+ Coyote