Comment installer SqlPlus?

19

J'ai essayé d'installer sqlplus en suivant les instructions d' ici . Je reçois toujours:

sqlplus: command not found

quand je fais sqlplusde mon terminal.

Je suis novice dans Ubuntu et j'utilise Ubuntu 12.04.

Fourmis
la source
Je pense que vous devez exécuter les commandes alien -i avec sudo:sudo alien -i
Savvas Radevic

Réponses:

26

Tout d'abord, vous devez télécharger les téléchargements instantanés du client . Installez un package étranger pour pouvoir installer des packages rpm en tapant la commande suivante dans le terminal.

sudo apt-get install alien

Une fois cela fait, accédez au dossier où se trouvent les fichiers rpm et exécutez ce qui suit:

sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm

Vous devez installer libaio.so. Tapez la commande suivante pour le faire:

sudo apt-get install libaio1

Créez le fichier de configuration Oracle:

sudo sensible-editor /etc/ld.so.conf.d/oracle.conf

Mettez cette ligne dans ce fichier:

/usr/lib/oracle/<your version>/client/lib/ 

Remarque - pour les installations 64 bits, le chemin sera:

/usr/lib/oracle/<your version>/client64/lib/ 

Mettez à jour la configuration en exécutant la commande suivante:

sudo ldconfig

Essayez de vous connecter en utilisant:

sqlplus username/password@//dbhost:1521/SID

ou:

sqlplus testuser/password

Notez que si vous avez installé la version 64 bits, le client est appelé sqlplus64.

Ketan Patel
la source
Merci pour les détails. Cela m'a aidé à terminer l'installation, en particulier la partie concernant l'installation de la bibliothèque.
lonstar
1
... jusqu'à ce que j'essaie d'exécuter sqlplus testuser / password et que j'obtienne "sqlplus: erreur lors du chargement des bibliothèques partagées: libsqlplus.so: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire"
lonstar
4
... et c'est parce que je viens de toucher le fichier oracle.conf et il s'avère que vous devez y ajouter ceci: /usr/lib/oracle/11.2/client/lib/ (assurez-vous de vérifier que vous l'avez réellement chemin, et merci à marcelozambranav.blogspot.com/2012/08/… ). Une fois que j'ai fait ça, tout allait bien.
lonstar
4
@K .K Patel J'ai suivi vos instructions mais après avoir tapé sqlplus en ligne de commande, il vous invite à entrer un nom d'utilisateur et un mot de passe. Et je ne connais pas le nom d'utilisateur et le mot de passe. Que devrais-je faire?
Sabyasachi
Ils ont oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. Ne puis-je pas simplement installer sqlplus et en finir?
masterxilo
3

La chose extraterrestre n'a pas fonctionné à cause de:

Error: cannot open Name index using db5 - Permission denied (13)

J'ai donc opté pour la solution simple: téléchargez les fichiers zip à partir d' Oracle (de base et sqlplus), extrayez-les et placez le dossier dans lequel vous placez les fichiers de programme (par exemple /usr/share). Créez ensuite un script qui exécute l'exécutable après avoir défini la LD_LIBRARY_PATHvariable, afin que les bibliothèques soient trouvées:

#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"

Appelez-le sqlplus, rendez-le exécutable ( chmod 755 sqlplus) et placez-le dans un répertoire sur votre PATH(par exemple /usr/bin/), afin que bash le trouve.

Exécutez-le comme

sqlplus user/password@host:port/service

Si vous obtenez

error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

installer la bibliothèque avec sudo apt-get install libaio1

Moritz Ringler
la source
1

Je pense que ce lien serait utile. C'est assez descriptif. Assurez-vous de suivre toutes les étapes. Si vous avez des problèmes, n'hésitez pas à commenter.

Vinit Kumar
la source
6
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Eliah Kagan
C'est ce que même moi j'ai fait .. Mais ça ne semble pas fonctionner.!
Ant's
J'ai trouvé ce fil unix.com/ubuntu/157848-sqlplus-command-not-found.html.Essayez si cela pourrait vous aider mieux. Je n'ai pas la vitesse nette pour le télécharger, sinon je l'aurais essayé moi-même et donner une meilleure solution.
Vinit Kumar
1
"Ça ne marche pas" de @ Ant ne nous donne aucun indice. Montrez-nous la sortie de chaque commande. Ensuite, nous aurons une image générale de ce qui se passe et où se situe le problème.
Savvas Radevic
0

Bien sûr, l'installation correcte est à partir des packages officiels comme ci-dessus ( téléchargez Instant Client Downloads ), mais vous pouvez obtenir un sqlplus fonctionnel en copiant simplement ces fichiers (vous pouvez le trouver sur n'importe quel ordinateur avec le client Oracle installé), et certains msb sont facultatifs :

./sqlplus
./sqlplus/mesg
./sqlplus/mesg/sp1zhs.msb
./sqlplus/mesg/sp2zhs.msb
./sqlplus/mesg/sp2ptb.msb
./sqlplus/mesg/sp2us.msb
./sqlplus/mesg/sp1us.msb
./sqlplus/mesg/sp1ptb.msb
./sqlplus/mesg/cpyja.msb
./sqlplus/mesg/sp1ja.msb
./sqlplus/mesg/cpyus.msb
./sqlplus/mesg/cpyzhs.msb
./sqlplus/mesg/cpyptb.msb
./sqlplus/mesg/sp2ja.msb
./sqlplus/sqlplus
./README
./lib
./lib/libaio.so.1
./lib/libclntsh.so.11.1
./lib/libsqlplus.so
./lib/libnnz11.so
./lib/libociei.so

En tant que dépendance supplémentaire, j'ai inclus libaio.so- il peut être installé avecsudo apt-get install libaio1

Ainsi, un exemple d'utilisation peut être:

cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
tonne
la source
0

Tout comme un addendum à la grande réponse de @Ketan Patel:

Ce script simple, conservé avec les fichiers rpm téléchargés, accélère le processus pour les autres installations:

#!/usr/bin/env sh
# /ubuntu//a/207145/585248

CURRDIR="$(pwd)";
cd $(dirname "${0}");

# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1

# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm

echo "Configuring LD path..."
# LD config:
echo /usr/lib/oracle/*/client64/lib \
    | sort -V \
    | tail -n 1 \
    | sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig

cd "${CURRDIR}"
echo "DONE!!";

NOTE: Il installe libaio1qui est le nom du libaio au moins dans Ubuntu (et je pense aussi dans Debian). D'autres distributions peuvent avoir besoin d'ajuster ce nom de package sur "libaio" ou quel que soit le nom de package correspondant.

Edit: Ici, il s'agit d'une version améliorée avec un habillage readline (crédistes pour ce post ):

#!/usr/bin/env sh
# /ubuntu//a/207145/585248

CURRDIR="$(pwd)";
cd $(dirname "${0}");

# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1 rlwrap

# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm

# LD config:
echo "Configuring LD path..."
echo /usr/lib/oracle/*/client64/lib \
    | sort -V \
    | tail -n 1 \
    | sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig

# Readline wrapping:
echo "Configuring readline wrapping..."
echo "WARNING: You need to manually execute this command or re-read /etc/profile"
echo "if you want readline wrapped 'sqlplus' alias to work in current session".
(cat | sudo tee /etc/profile.d/sqlplus_rlwrap.sh) <<!EOF
alias sqlplus="rlwrap -i -f ~/.sqlplus_history -H ~/.sqlplus_history -s 30000 sqlplus64"
!EOF
touch ~/.sqlplus_history

cd "${CURRDIR}"
echo "DONE!!";

C'est toujours Oracle, mais au moins cela rend la douleur un peu plus supportable ...

bitifet
la source