Problème Oracle / PHP
Fermé
cool-abdoul
Messages postés
96
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
30 novembre 2010
-
29 nov. 2009 à 20:20
fiu - 30 nov. 2009 à 11:43
fiu - 30 nov. 2009 à 11:43
A voir également:
- Problème Oracle / PHP
- Easy php - Télécharger - Divers Web & Internet
- Identificateur non valide oracle ✓ - Forum Bases de données
- Oracle america inc virus ✓ - Forum Virus
- \R php ✓ - Forum PHP
- Php?id=1 - Forum PHP
3 réponses
bob@37
Messages postés
1
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
29 novembre 2009
29 nov. 2009 à 20:48
29 nov. 2009 à 20:48
si tu as une erreur oracle ORA-12xxx alors c'est ta connexion via sqlnet vers ta base qui ne fonctionne pas.
une connexion sqlnet est une connexion via le reseau comme si la base etait sur une autre machine.
je pense qu'il doit y avoir un assistant reseau avec ta version d'oracle pour configurer le SQLNET.
sinon tu peux aussi te connecter en local sans la couche reseau SQLNET.
ceci se fait avec la variable ORACLE_SID que tu dois affecter a "SYSTEM" et ne pas mettre de valeur dans $database
Le lien http://www.manuelphp.com/php/function.oci-connect.php est interressant.
une connexion sqlnet est une connexion via le reseau comme si la base etait sur une autre machine.
je pense qu'il doit y avoir un assistant reseau avec ta version d'oracle pour configurer le SQLNET.
sinon tu peux aussi te connecter en local sans la couche reseau SQLNET.
ceci se fait avec la variable ORACLE_SID que tu dois affecter a "SYSTEM" et ne pas mettre de valeur dans $database
Le lien http://www.manuelphp.com/php/function.oci-connect.php est interressant.
cool-abdoul
Messages postés
96
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
30 novembre 2010
9
29 nov. 2009 à 23:37
29 nov. 2009 à 23:37
Hello bob !!
Merci pour ta réponse bien ciblée qui m'as été en partie très utile !! Cependant, je ne vois pas où effectuer l'affectation de la variable ORACLE_SID="SYSTEM". Est un script php ou du SQL ou de rajouter dans un fichier, en l'occurence php.ini ? Est-ce par exemple SET ORACLE_SID="SYSTEM" ?
Merci à d'avance !!
Merci pour ta réponse bien ciblée qui m'as été en partie très utile !! Cependant, je ne vois pas où effectuer l'affectation de la variable ORACLE_SID="SYSTEM". Est un script php ou du SQL ou de rajouter dans un fichier, en l'occurence php.ini ? Est-ce par exemple SET ORACLE_SID="SYSTEM" ?
Merci à d'avance !!
Attention à la confusion !
* SYSTEM est un utilisateur de la base (un grand gourou même)
* Le nom de la base (le nom de l'instance) est normalement choisi par la personne qui crée la base. Si tu ne te rappelles plus le nom donné à la base, tu l'as dans la vue v$database ;
* un autre nom est celui qui est défini sur la machine client, au niveau de SQL*Net, et qui nomme le service de données proposé par l'instance, que l'instance soit sur la même machine ou sur une machine distante. ce nom, ainsi que les autres noms donnés aux autres services de données oracle, est disponible dans le fichier $ORACLE_HOME/network/admin/tnsnames.ora ou %ORACLE_HOME%\network\admin\tnsnames.ora
C'est ce nom qu'il faut utiliser dans le script php
S'il n'y figure pas et que ta base de données est locale essaie $database = "";
Sinon, crée-toi une entrée dans tnsnames.ora via l'assistant ou, si tapapeur, manuellement avec un truc du genre SYSTEM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521)))(CONNECT_DATA=(INSTANCE_NAME=le_nom_de_ton_instance))) pour identifier sur ton pc une source SYSTEM qui corresponde à l'instance SYSTEM de ton pc.
* SYSTEM est un utilisateur de la base (un grand gourou même)
* Le nom de la base (le nom de l'instance) est normalement choisi par la personne qui crée la base. Si tu ne te rappelles plus le nom donné à la base, tu l'as dans la vue v$database ;
* un autre nom est celui qui est défini sur la machine client, au niveau de SQL*Net, et qui nomme le service de données proposé par l'instance, que l'instance soit sur la même machine ou sur une machine distante. ce nom, ainsi que les autres noms donnés aux autres services de données oracle, est disponible dans le fichier $ORACLE_HOME/network/admin/tnsnames.ora ou %ORACLE_HOME%\network\admin\tnsnames.ora
C'est ce nom qu'il faut utiliser dans le script php
S'il n'y figure pas et que ta base de données est locale essaie $database = "";
Sinon, crée-toi une entrée dans tnsnames.ora via l'assistant ou, si tapapeur, manuellement avec un truc du genre SYSTEM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521)))(CONNECT_DATA=(INSTANCE_NAME=le_nom_de_ton_instance))) pour identifier sur ton pc une source SYSTEM qui corresponde à l'instance SYSTEM de ton pc.