Doctrine, c’est top…
Un outil quasi-automatique qui arriverait presque à supprimer la notion de SQL dans une application…
Il génère son fichier de configuration, les classes des modèles et fait aussi le café.
Dix caractères de configuration, trois lignes de commande et ça tourne…
Enfin, en général…
Car Doctrine se présente comme une surcouche de l’interface d’abstraction de bases de données PDO.
Mais quand on travaille avec Oracle, il arrive parfois que l’on ne puisse pas utiliser l’extension PDO_OCI en raison de son statut expérimental.
La chaîne de connexion suivante devient alors un doux rêve :
oci:dbname=//<ip>:<port>/<db_name>
Heureusement, et il faut fouiller dans les classes pour le voir, Doctrine possède un adapter pour Oracle qui utilise la fameuse extension OCI8.
Plusieurs syntaxes sont acceptées par cette classe.
Avec le couple IP/SID, par exemple :
oracle:dbname=//<ip>:<port>/<sid>
Ou encore en utilisant un TNSNAME configuré sur la machine :
oracle:dbname=<tns_name>
Les chaînes de connexions peuvent être complétées avec les paramètres habituels (charset, etc.).
L’important étant de conserver le mot clé oracle:…
Copyright 2006 - 2013 - Menthe Fraîche est poliment rafraichi par WordPress
4 commentaires
Merci beaucoup !
Je me voyais mal recréer un Adapter pour utiliser la librairie Oci8 plutôt que Pdo_Oci..
En changeant un seul mot, j’ai réglé tous mes problèmes de CLOB !
@+
Ravi d’avoir pu aider !
Je suis en train de tester avec ‘oracle’ comme dit dans l’article.
J’arrive à faire des requêtes avec « Doctrine_Query::create() ». Par contre, les methodes magique « find » (findOneBy(), etc.) ne fonctionnent pas. Elles renvoient l’erreur » oci_fetch_array(): 1533 is not a valid oci8 statement resource ».
As-tu le même souci ?
Les « findBy » fonctionnent bien par contre je n’ai pas testé avec les « findOneBy »…