====== Installation du client Oracle 8i sur Windows XP, PIV ======
__OS__: Windows XP
__Processeur__: Pentium IV
__Problème__: Comment installer le client Oracle 8i sur un Windows XP avec Pentium IV
- Copier le contenu du CD du client sur le HD
- rechercher le fichier symcjit.dll
- le renommer
- lancer l'installation depuis le HD
pathToCdContent\autorun\autorun.exe
__Raison__:
Sans ce renommage, l'installation ne se lance pas. Ceci est dû à un problème de compatibilité de la version de la JVM présente sur le CD avec les PIV.
====== Installation du client Oracle 8i sous Ubuntu ======
__OS__: testé sous Ubuntu 9.04, 11.04 et 12.04
__Processus__:
* télécharger instantclient-basic-linux32-11.2.0.2.0.zip depuis le site d'Oracle
* télécharger instantclient-sdk-linux32-11.2.0.2.0.zip depuis le site d'Oracle
* installer le dossier instantclient_11_2 de instantclient-basic-linux32-11.2.0.2.0.zip dans /opt/oracle/instantclient_11_2
* copier le dossier 'sdk' de instantclient-sdk-linux32-11.2.0.2.0.zip dans le dossier instantclient_11_2
* télécharger oci8-1.4.5.tgz depuis http://pecl.php.net/package/oci8
* installer phpize (paquet php5-dev)
* dans le dossier /opt/oracle/instantclient_11_2/, créer un lien symbolique qui manque: libclntsh.so -> ./libclntsh.so.11.1
* lancer phpize dans le dossier de oci8-1.4.5.tgz
* ./configure -with-oci8=shared,instantclient,/opt/oracle/instantclient_11_2/
* make
* sudo make install
* installer le paquet libaio-dev
__Remarque__:
Sans l'installation du paquet libaio-dev, le module oci.so de PHP ne fonctionne pas, car une dépendance n'est pas trouvée.
Pour connaître les dépendances insatisfaites, utiliser la commance suivante:
ldd -v /usr/lib/php5/20060613+lfs/oci8.so
et chercher le terme 'not found'
====== INSERT avec une date ======
__Problème__: Comment effectuer un INSERT contenant un champ DATE
Sous Oracle, les chaînes de caractères ne sont pas transformées automatiquement en date lorsque l'on effectue une requête telle que:
INSERT INTO mytable (birthday) VALUES ('2000-12-25') -- -> ORA-01861: literal does not match format string
__Solution__:
Il faut formater la date au moyen de la fonction TO_DATE
INSERT INTO mytable (birthday) VALUES (TO_DATE('2000-12-25', 'yyyy-mm-dd')) -- -> OK