Jak zainstalować SqlPlus?

19

Próbowałem zainstalować sqlplus, postępując zgodnie z instrukcją tutaj . Nadal otrzymuję:

sqlplus: command not found

kiedy to zrobię sqlplusz mojego terminala.

Jestem nowicjuszem w Ubuntu i używam Ubuntu 12.04.

Mrówki
źródło
Myślę, że musisz uruchomić polecenia alien -i z sudo:sudo alien -i
Savvas Radevic

Odpowiedzi:

26

Przede wszystkim musisz pobrać Instant Client Downloads . Zainstaluj pakiet obcy, aby móc instalować pakiety RPM, wpisując następujące polecenie w terminalu.

sudo apt-get install alien

Po zakończeniu przejdź do folderu, w którym znajdują się pliki RPM, i wykonaj następujące czynności:

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

Musisz zainstalować libaio.so. Wpisz następujące polecenie, aby to zrobić:

sudo apt-get install libaio1

Utwórz plik konfiguracyjny Oracle:

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

Umieść tę linię w tym pliku:

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

Uwaga - w przypadku instalacji 64-bitowych ścieżka będzie wyglądać następująco:

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

Zaktualizuj konfigurację, uruchamiając następujące polecenie:

sudo ldconfig

Spróbuj połączyć się za pomocą:

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

lub:

sqlplus testuser/password

Pamiętaj, że jeśli zainstalowano wersję 64-bitową, klient jest wywoływany sqlplus64.

Ketan Patel
źródło
Dziękuję za szczegóły. Pomogło mi to zakończyć instalację, szczególnie część dotyczącą instalacji biblioteki lib.
lonstar
1
... dopóki nie spróbowałem uruchomić sqlplus testuser / password i nie otrzymałem „sqlplus: błąd podczas ładowania bibliotek współdzielonych: libsqlplus.so: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu”
lonstar
4
... a to dlatego, że właśnie dotknąłem pliku oracle.conf i okazuje się, że musisz to dodać do niego: /usr/lib/oracle/11.2/client/lib/ (upewnij się, że rzeczywiście go masz) ścieżka i dzięki marcelozambranav.blogspot.com/2012/08/… ). Kiedy to zrobiłem, wszystko było dobrze.
lonstar
4
@K .K Patel Postępowałem zgodnie z instrukcjami, ale po wpisaniu polecenia sqlplus w wierszu polecenia wyświetla monit o podanie nazwy użytkownika i hasła. I nie znam nazwy użytkownika i hasła. Co powinienem zrobić?
Sabyasachi
Mają oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, narzędzia, basiclite. Czy nie mogę po prostu zainstalować sqlplus one i skończyć z tym?
masterxilo
3

Cudzoziemiec nie działał z powodu:

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

Więc poszedłem z łatwym rozwiązaniem: pobierz pliki zip z Oracle (podstawowe i sqlplus), rozpakuj je i umieść folder, w którym umieszczasz pliki programów (np /usr/share.). Następnie utwórz skrypt, który uruchamia plik wykonywalny po ustawieniu LD_LIBRARY_PATHzmiennej, aby znaleźć biblioteki:

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

Wywołaj go sqlplus, chmod 755 sqlplusspraw , aby był wykonywalny ( ) i umieść go w katalogu PATH(np. /usr/bin/), Aby bash go znalazł.

Uruchom to jak

sqlplus user/password@host:port/service

Jeśli dostaniesz

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

zainstaluj bibliotekę za pomocą sudo apt-get install libaio1

Moritz Ringler
źródło
1

Myślę, że ten link by pomógł. Jest dość opisowy. Upewnij się, że wykonałeś wszystkie kroki. Jeśli jednak masz jakieś problemy, nie wahaj się komentować.

Vinit Kumar
źródło
6
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Eliah Kagan
To, co ja nawet zrobiłem .. Ale to chyba nie działa!
Ant jest
Znalazłem ten wątek unix.com/ubuntu/157848-sqlplus-command-not-found.html. Spróbuj, jeśli to pomoże ci lepiej. Nie mam prędkości netto, aby go pobrać, inaczej spróbowałbym go sam i dałbym lepsze rozwiązanie.
Vinit Kumar,
1
@ Ant „to nie działa” nie daje nam wskazówek. Pokaż nam wynik każdego polecenia. Następnie uzyskamy ogólny obraz tego, co się dzieje i gdzie jest problem.
Savvas Radevic
0

Oczywiście poprawna instalacja pochodzi z oficjalnych pakietów, takich jak powyżej ( pobierz Instant Client Downloads ), ale możesz uzyskać w pełni działający program sqlplus, po prostu kopiując te pliki (możesz go znaleźć na dowolnym komputerze z zainstalowanym klientem Oracle), a niektóre msb są opcjonalne :

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

Jako dodatkową zależność uwzględniłem libaio.so- można ją zainstalować za pomocąsudo apt-get install libaio1

Przykładowym zastosowaniem może być:

cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
tona
źródło
0

Podobnie jak dodatek do świetnej odpowiedzi @Ketan Patel:

Ten prosty skrypt, przechowywany razem z pobranymi plikami rpm, autpmates proces dla kolejnych instalacji:

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

UWAGA: Instaluje się, libaio1co jest nazwą libaio przynajmniej w Ubuntu (i myślę, że także w Debianie). Inne dystrybucje mogą wymagać dostosowania tej nazwy pakietu do „libaio” lub innej odpowiedniej nazwy pakietu.

Edycja: Oto ulepszona wersja z zawijaniem readline (kredytodawcy tego postu ):

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

To wciąż Wyrocznia, ale przynajmniej sprawia, że ​​ból jest trochę bardziej znośny ...

bitifet
źródło