Connexion à Oracle

Petit nouveau ! | 3 Messages

03 févr. 2009, 18:28

Bonjour,

Ca fait un moment que je sèche pour me connecter à Oracle.
Je roule avec un windows xp (je sais....) un php 5.2.8 un oracle distant 8.1.7.2.0 un client oracle sur ma machine 11.1

Sur mon phpinfo() j'ai bien mon ORACLE_HOME et mon ORACLE_SID juste. J'ai aussi les params oci8 qui sont ok.

Par contre, quand je lance ce script :

Code : Tout sélectionner

$ORACLE_HOME = getenv('ORACLE_HOME'); if (strlen($ORACLE_HOME) == 0) { printf("The ORACLE_HOME environment variable has not been set");} else{ printf("ORACLE_HOME okay !");} echo"<br><br>"; $connex = OCILogon('<user>', '<pass>', '<server>'); if ($connex){ print "oui"; }else{ print "<br><b>failed to connect to oracle DB</b>"; }
il me retourne :
ORACLE_HOME okay !


Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in C:\Program Files\EasyPHP 3.0\www\test.php on line 52

failed to connect to oracle DB
En d'autres termes, si je comprends bien, la variable ORACLE_HOME est ok, mais pas trop.....

qqu a une idée de ce que je fais de faux, ce qui me manque.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 févr. 2009, 23:13

Que contient ton <server> ?

Oracle se base sur un fichier tnsnames.ora pour identifier le serveur et la base sur laquelle il doit se connecter à partir de l'alias que tu lui as donné, as-tu vérifié si celui-ci était bien renseigné ? Parviens-tu à te connecter à ta base depuis le poste client avec sqlplus ?

Tu peux également renseigner ton <server> directement avec la chaine "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ton_serveur)(PORT = 1521)) ...."
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

04 févr. 2009, 10:45

...quote]

Bonjour Ryle,

Merci de t'intéresser à mon problème.
Mon <server> est un adresse ip où est installé la base oracle.
J'ai jeté un coup d'oeil sur mon tnsnames.ora. Celui-ci est d'ailleurs dans un tout autre folder de ma machine (je l'attendais dans mon instantclient folder); en plus, c'est des hostname et non des ip => je suis loin d'être certain que dans la liste, il y ai ma base (ça m'étonnerais quand même, mais bon). Donc, dans le doute, j'ai renseigné directement sur mon fichier php comme ceci :

Code : Tout sélectionner

$server="(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))))"; $connex = OCILogon('user', 'pass', '$server'); etc..
Mais toujours la même erreur.

J'ai complété mon package client avec sqlplus depuis ici (je m'étais contenté du basic):

http://www.oracle.com/technology/softwa ... nsoft.html

Et là, j'ai une erreur qui dit :
ORA-12560: TNS:protocol adapter error
Ca avance....je cherche....si vous avez des idées, je suis preneur.

Merci