Il peut parfois être utile d'exécuter des requêtes SQL sous oracle mais l'on ne dispose pas d'un client oracle installé. Ou bien l'on ne dispose pas des droits pour le faire.
On peut aussi désirer avoir un client Oracle sur une clef USB afin de le transporter avec soi.
Dans tous les cas, il faut contourner le problème de l'installation du client en local.
Il existe un client oracle nommé Instant Client et prévu pour s'utiliser sans installation. Il suffit de télécharger ici les deux paquets Instant Client Package - Basic et Instant Client Package - SQL*Plus nécessaires. Il s'agit de fichier zip à décompresser.
Décompresser les deux paquets précédemment téléchargés dans le même répertoire.
Récupérez ou créer un fichier tnsnames.ora que vous placerez dans le répertoire de votre choix (pas forcément celui d'installation du client). Le client possède alors tout ce qu'il faut pour fonctionner. Il suffit juste de lui définir les bonnes variables d'environnement.
Sous Windows, nous prendrons l'exemple d'un fichier batch (.bat). commençons par définir les variables :
set PATH=mon_chemin_vers_instantclient\instantclient;%PATH% set NLS_LANG=FRENCH_FRANCE.UTF8 set TNS_ADMIN=mon_chemin_vers_tnsnames
TNS_ADMIN définit le chemin du répertoire contenant le tnsnames.ora.
NLS_LANG définit la langue utilisée et l'encodage des caratères (ici Français en UTF-8).
PATH ajoute au PATH le répertoire des exécutables du client oracle.
Il ne reste plus qu'à exécuter, par exemple, une requête de la façon suivante :
sqlplus user/password@INSTANCE @ma_requête.sql
Vous pouvez aussi définir l'instance à utiliser directement en utilisant la variable TWO_TASK :
set TWO_TASK=INSTANCE