Articles avec le tag ‘Oracle’

Installer Oracle Instant Client sur Debian 64bits pour Mono

J’ai eu récemment la problématique de devoir configurer un serveur debian 64 bits pour faire du mono et plus particulièrement des accès à des bases Oracle.
Après l’installation de mono, on peut trouver un rapide tuto chez mono.
La partie OCI devait bien se passer mais pas en 64 bits …

Pas possible d’utiliser les paquets DEB fournit par Oracle, il faut passer par les paquets RPM et les convertir en .deb.
Vous pouvez télécharger chez Oracle, l’instant client : http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html (nécessite une identification pas de wget donc …)
Puis choisir de télécharger le paquet : oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm (vous pouvez aussi prendre le sqlplus, si besoin)
Il faut convertir le paquet RPM avec alien :

# alien oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb generated

Faire un dpkg pour l’installer

# dpkg -i oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb
(Reading database ... 36766 files and directories currently installed.)
Unpacking oracle-instantclient11.2-basic (from oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb) ...
Setting up oracle-instantclient11.2-basic (11.2.0.3.0-2) ...

Les librairies vont s’installer dans /usr/lib/oracle/11.2/client64/lib :
Attention de faire les liens à la main pour libclntsh.so -> libclntsh.so.11.1 et libocci.so -> libocci.so.11.1

cd /usr/lib/oracle/11.2/client64/lib
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so

Penser à faire un fichier /etc/ld.so.conf.d/oracle.conf, suivit d’un ldconfig :

echo "/usr/lib/oracle/11.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf
ldconfig

Modifier ou ajouter des variables d’environnement (dans votre .zshrc, .bash_profile ou autres en modifiant si nécessaire, je pense surtout au NLS_LANG):

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib
export MONO_PATH=${ORACLE_HOME}/lib
export NLS_LANG=french_france.WE8ISO8859P15

Faire/importer votre fichier tnsnames.ora que vous mettrez dans /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora.

Tester avec un petit code en mono :
Fichier test.cs :

using System;
using System.Data;
using System.Data.OracleClient;

public class Test
{
    public static void Main (string[] args)
    {
       string connectionString =
          "Data Source=MYORACLEDB;" +
          "User ID=MYLOGIN;" +
          "Password=MYPASS;";
       OracleConnection dbcon = null;
       dbcon = new OracleConnection (connectionString);
       dbcon.Open ();
       OracleCommand dbcmd = dbcon.CreateCommand ();
       string sql = "select TO_CHAR(sysdate,'DD/MM/YYYY') as c from dual";
       dbcmd.CommandText = sql;
       OracleDataReader reader = dbcmd.ExecuteReader ();
       while (reader.Read ()) {
          string c = (string) reader["c"];
          Console.WriteLine ("Date: {0}", c);
       }
       // clean up
       reader.Close ();
       reader = null;
       dbcmd.CommandText = sql;
       dbcmd.ExecuteNonQuery ();
       dbcmd.Dispose ();
       dbcmd = null;
       dbcon.Close ();
       dbcon = null;
    }
}

En modifiant bien sûr, MYORACLEDB, MYLOGIN et MYPASS par vos valeurs.

On compile et on exécute pour tester :

# gmcs test.cs /r:System.Data.dll /r:System.Data.OracleClient.dll
# mono test.exe
Date: 17/11/2011

Sortie de OraVM 2.2.0

Voir pour plus d’informations :

http://blogs.oracle.com/virtualization/2009/10/annoucing_oracle_vm_storage_co.html

Update (10/15/2009): Oracle VM 2.2 ISO images are now available for download from Oracle E-Delivery web site :

Pages
Catégories