Bagaimana cara menginstal SqlPlus?

19

Saya mencoba menginstal sqlplus dengan mengikuti instruksi dari sini . Saya masih mendapatkan:

sqlplus: command not found

ketika saya lakukan sqlplusdari terminal saya.

Saya seorang pemula di Ubuntu dan saya menggunakan Ubuntu 12.04.

Semut
sumber
Saya pikir Anda perlu menjalankan perintah alien -i dengan sudo:sudo alien -i
Savvas Radevic

Jawaban:

26

Pertama-tama Anda perlu mengunduh Unduhan Klien Instan . Instal paket alien sehingga Anda dapat menginstal paket rpm dengan mengetik perintah berikut di terminal.

sudo apt-get install alien

Setelah selesai, buka folder tempat file rpm berada dan jalankan yang berikut:

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

Anda perlu menginstal libaio.so. Ketik perintah berikut untuk melakukannya:

sudo apt-get install libaio1

Buat file konfigurasi Oracle:

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

Letakkan baris ini di file itu:

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

Catatan - untuk instalasi 64-bit, jalurnya adalah:

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

Perbarui konfigurasi dengan menjalankan perintah berikut:

sudo ldconfig

Coba sambung menggunakan:

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

atau:

sqlplus testuser/password

Perhatikan bahwa jika Anda menginstal versi 64-bit, klien dipanggil sqlplus64.

Ketan Patel
sumber
Terima kasih untuk detailnya. Ini membantu saya menyelesaikan instalasi, terutama bagian tentang menginstal lib.
lonstar
1
... sampai saya mencoba menjalankan sqlplus testuser / kata sandi dan mendapat "sqlplus: error saat memuat pustaka bersama: libsqlplus.so: tidak dapat membuka file objek bersama: Tidak ada file atau direktori"
lonstar
4
... dan itu karena saya baru saja menyentuh file oracle.conf dan ternyata Anda perlu menambahkan ini padanya: /usr/lib/oracle/11.2/client/lib/ (pastikan untuk memeriksa bahwa Anda benar-benar memilikinya path, dan terima kasih ke marcelozambranav.blogspot.com/2012/08/… ). Setelah saya melakukan itu, semuanya baik-baik saja.
lonstar
4
@K .K Patel Saya mengikuti instruksi Anda tetapi setelah mengetik sqlplus di baris perintah, itu meminta untuk memasukkan nama pengguna dan kata sandi. Dan saya tidak tahu nama pengguna dan kata sandi. Apa yang harus saya lakukan?
Sabyasachi
Mereka memiliki oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. Bisakah saya menginstal sqlplus satu dan selesai dengan itu?
masterxilo
3

Benda asing itu tidak berfungsi karena:

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

Jadi saya pergi dengan solusi mudah: Unduh file zip dari Oracle (dasar dan sqlplus), ekstrak, dan letakkan folder tempat Anda meletakkan file program (misalnya /usr/share). Kemudian buat skrip yang menjalankan executable setelah pengaturan LD_LIBRARY_PATHvariabel, sehingga pustaka ditemukan:

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

Sebut saja sqlplus, buatlah itu dapat dieksekusi ( chmod 755 sqlplus) dan letakkan di direktori pada PATH(misalnya /usr/bin/) Anda, sehingga bash menemukannya.

Jalankan seperti

sqlplus user/password@host:port/service

Jika Anda mendapatkan

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

instal perpustakaan dengan sudo apt-get install libaio1

Moritz Ringler
sumber
1

Saya pikir tautan ini akan membantu. Ini cukup deskriptif. Pastikan Anda mengikuti semua langkah. Masih jika Anda memiliki masalah, jangan ragu untuk berkomentar.

Vinit Kumar
sumber
6
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Eliah Kagan
Itu yang bahkan telah saya lakukan .. Tapi sepertinya tidak berhasil.!
Semut
Saya menemukan utas ini unix.com/ubuntu/157848-sqlplus-command-not-found.html. Coba apakah ini akan membantu Anda lebih baik. Saya tidak memiliki kecepatan internet untuk mengunduhnya, kalau tidak saya akan mencobanya sendiri dan memberikan solusi yang lebih baik.
Vinit Kumar
1
@ Semut "ini tidak berfungsi" tidak memberi kita petunjuk. Tunjukkan kami output dari setiap perintah. Kemudian kita akan memiliki gambaran umum tentang apa yang terjadi dan di mana masalahnya.
Savvas Radevic
0

Tentu saja instalasi yang benar berasal dari paket resmi seperti di atas ( unduh Unduhan Klien Instan ), tetapi Anda bisa mendapatkan sqlplus yang berfungsi penuh hanya dengan menyalin file-file ini (Anda dapat menemukannya di komputer mana pun dengan klien oracle diinstal), dan beberapa msb bersifat opsional. :

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

Sebagai ketergantungan tambahan, saya memang menyertakan libaio.so- itu dapat diinstal dengansudo apt-get install libaio1

Jadi, penggunaan sampel dapat:

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

Sama seperti tambahan untuk jawaban bagus @Ketan Patel:

Skrip sederhana ini, disimpan bersama-sama dengan file-file rpm yang diunduh, meng-autpmate proses untuk pemasangan lebih lanjut:

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

CATATAN: Ini menginstal libaio1yang merupakan nama libaio setidaknya di Ubuntu (dan saya pikir di Debian juga). Distribusi lain mungkin perlu menyesuaikan nama paket ini menjadi "libaio" atau apa pun nama paket yang sesuai.

Sunting: Ini adalah versi yang ditingkatkan dengan pembungkus readline (kreditor untuk posting ini ):

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

Ini masih Oracle, tapi setidaknya itu membuat rasa sakitnya sedikit lebih tertahankan ...

bitifet
sumber