web-dev-qa-db-fra.com

Comment installer SqlPlus?

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

sqlplus: command not found

quand je fais sqlplus de mon terminal.

Je suis un novice sous Ubuntu et j'utilise Ubuntu 12.04.

18
Ant's

Tout d’abord, vous devez télécharger Téléchargements Instant Client . Installez alien package pour pouvoir installer les packages rpm en tapant la commande suivante dans le terminal.

Sudo apt-get install alien

Une fois que cela est fait, allez dans le 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éer un 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 s'appelle sqlplus64.

25
Ketan Patel

La chose étrangère n'a pas fonctionné à cause de:

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

Alors je suis allé avec la solution facile: Téléchargez les fichiers Zip de Oracle (basic et sqlplus), extrayez-les et mettez le dossier dans lequel vous avez mis les fichiers du programme (par exemple, /usr/share). Créez ensuite un script qui exécute l'exécutable après avoir défini la variable LD_LIBRARY_PATH, afin de trouver les bibliothèques suivantes:

#!/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 de votre PATH (exemple: /usr/bin/), afin que bash le trouve.

Courez 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

installez la bibliothèque avec Sudo apt-get install libaio1

2
Moritz Ringler

Je pense que cela lien aiderait. C'est assez descriptif. Assurez-vous de suivre toutes les étapes. Toujours si vous avez des problèmes, n'hésitez pas à commenter.

1
Vinit Kumar

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

Ce script simple, conservé avec les fichiers rpm téléchargés, lance automatiquement le processus d'installation ultérieure:

#!/usr/bin/env sh
# https://askubuntu.com/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 libaio1 qui est le nom de libaio au moins dans Ubuntu (et je pense dans Debian aussi). D'autres distributions peuvent avoir besoin d'ajuster ce nom de paquet sur "libaio" ou quel que soit le nom du paquet correspondant.

Edit: Il s’agit ici d’une version améliorée avec wrapping readline (credists for this post ):

#!/usr/bin/env sh
# https://askubuntu.com/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 ça rend la douleur un peu plus supportable ...

0
bitifet

Bien sûr, la bonne installation provient des paquets 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 sur lequel le client Oracle est installé.) ), et quelques msb sont optionnels:

./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é avec Sudo 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/
0
ton