Wie installiere ich SqlPlus?


19

Ich habe versucht, sqlplus zu installieren, indem ich den Anweisungen von hier aus gefolgt bin . Ich bekomme immer noch:

sqlplus: command not found

wenn ich das sqlplusvon meinem terminal aus tue .

Ich bin ein Anfänger in Ubuntu und benutze Ubuntu 12.04.


Ich denke, Sie müssen die Alien -i-Befehle mit sudo ausführen:sudo alien -i
Savvas Radevic

Antworten:


26

Zunächst müssen Sie Instant Client Downloads herunterladen . Installieren Sie das Alien-Paket, damit Sie RPM-Pakete installieren können, indem Sie den folgenden Befehl im Terminal eingeben.

sudo apt-get install alien

Wechseln Sie anschließend in den Ordner, in dem sich die RPM-Dateien befinden, und führen Sie Folgendes aus:

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

Sie müssen installieren libaio.so. Geben Sie dazu den folgenden Befehl ein:

sudo apt-get install libaio1

Erstellen Sie eine Oracle-Konfigurationsdatei:

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

Fügen Sie diese Zeile in die Datei ein:

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

Hinweis - Bei 64-Bit-Installationen lautet der Pfad:

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

Aktualisieren Sie die Konfiguration, indem Sie den folgenden Befehl ausführen:

sudo ldconfig

Versuchen Sie eine Verbindung herzustellen mit:

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

oder:

sqlplus testuser/password

Beachten Sie, dass der Client aufgerufen wird, wenn Sie die 64-Bit-Version installiert haben sqlplus64.


Danke für die Details. Es hat mir geholfen, die Installation abzuschließen, insbesondere den Teil über die Installation der lib.
Lonstar

1
... bis ich versucht habe, sqlplus testuser / password auszuführen und "sqlplus: Fehler beim Laden der gemeinsam genutzten Bibliotheken: libsqlplus.so: Datei mit gemeinsam genutzten Objekten kann nicht geöffnet werden: Keine solche Datei oder solches Verzeichnis"
lonstar

4
... und das lag daran, dass ich gerade die Datei "oracle.conf" berührt habe und es sich herausstellte, dass Sie diese Datei hinzufügen müssen: /usr/lib/oracle/11.2/client/lib/ Pfad und danke an marcelozambranav.blogspot.com/2012/08/… ). Sobald ich das getan habe, war alles in Ordnung.
Lonstar

4
@K .K Patel Ich habe Ihre Anweisungen befolgt, aber nachdem Sie sqlplus in die Befehlszeile eingegeben haben, werden Sie aufgefordert, einen Benutzernamen und ein Kennwort einzugeben. Und ich kenne den Benutzernamen und das Passwort nicht. Was sollte ich tun?
Sabyasachi

Sie haben oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. Kann ich nicht einfach den sqlplus installieren und fertig sein?
Masterxilo

3

Das Alien-Ding hat nicht funktioniert wegen:

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

Also entschied ich mich für die einfache Lösung: Laden Sie die ZIP- Dateien von Oracle (Basic und SQL Plus) herunter, extrahieren Sie sie und legen Sie den Ordner ab, in dem Sie die Programmdateien abgelegt haben (z /usr/share. B. ). Erstellen Sie dann ein Skript, das die ausführbare Datei ausführt, nachdem Sie die LD_LIBRARY_PATHVariable festgelegt haben, damit Bibliotheken gefunden werden:

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

Rufe es auf sqlplus, mache es ausführbar ( chmod 755 sqlplus) und lege es in ein Verzeichnis PATH(zB /usr/bin/), damit bash es findet.

Führen Sie es wie

sqlplus user/password@host:port/service

Wenn du bekommst

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

Installieren Sie die Bibliothek mit sudo apt-get install libaio1


1

Ich denke, dieser Link würde helfen. Es ist ziemlich beschreibend. Stellen Sie sicher, dass Sie alle Schritte befolgen. Wenn Sie dennoch Probleme haben, zögern Sie nicht, einen Kommentar abzugeben.


6
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Eliah Kagan

Das habe ich auch getan. Aber es scheint nicht zu funktionieren.
Ameisen

Ich fand diesen Thread unix.com/ubuntu/157848-sqlplus-command-not-found.html.Try wenn dies würde Ihnen besser helfen. Ich habe nicht die Nettogeschwindigkeit, um es herunterzuladen, sonst hätte ich es selbst versucht und eine bessere Lösung gegeben.
Vinit Kumar

1
@ Ants "Es funktioniert nicht" gibt uns keine Hinweise. Zeigen Sie uns die Ausgabe jedes Befehls. Dann haben wir ein allgemeines Bild davon, was los ist und wo das Problem liegt.
Savvas Radevic

0

Natürlich stammt die korrekte Installation von offiziellen Paketen wie oben ( Download von Instant Client-Downloads ), aber Sie können ein voll funktionsfähiges sqlplus erhalten, indem Sie einfach diese Dateien kopieren (Sie finden es auf jedem Computer, auf dem Oracle Client installiert ist), und einige MSBs sind optional :

./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

Als zusätzliche Abhängigkeit habe ich aufgenommen libaio.so- es kann mit installiert werdensudo apt-get install libaio1

Eine Beispielanwendung kann also sein:

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

0

Nur als Ergänzung zu Ketan Patels großartiger Antwort:

Dieses einfache Skript, zusammen mit heruntergeladenen RPM-Dateien, automatisiert den Vorgang für weitere Installationen:

#!/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!!";

HINWEIS: Es wird installiert, libaio1welches der Name des Libaio ist , zumindest in Ubuntu (und ich denke auch in Debian). Andere Distributionen müssen diesen Paketnamen möglicherweise an "libaio" oder den entsprechenden Paketnamen anpassen.

Edit: Hier ist es eine verbesserte Version mit Zeilenumbruch (Credists für diesen Beitrag ):

#!/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!!";

Es ist immer noch Oracle, aber es macht die Schmerzen ein bisschen erträglicher ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.