Como instalar o SqlPlus?

19

Tentei instalar o sqlplus seguindo as instruções aqui . Eu ainda estou recebendo:

sqlplus: command not found

quando eu faço sqlplusdo meu terminal.

Sou iniciante no Ubuntu e uso o Ubuntu 12.04.

Formigas
fonte
Acho que você precisa para executar comandos -i o estrangeiro com sudo:sudo alien -i
Savvas Radevic

Respostas:

26

Antes de tudo, você precisa baixar o Instant Client Downloads . Instale o pacote alienígena para poder instalar os pacotes rpm digitando o seguinte comando no terminal.

sudo apt-get install alien

Feito isso, vá para a pasta em que os arquivos rpm estão localizados e execute o seguinte:

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

Você precisa instalar libaio.so. Digite o seguinte comando para fazer isso:

sudo apt-get install libaio1

Crie o arquivo de configuração Oracle:

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

Coloque esta linha nesse arquivo:

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

Nota - para instalações de 64 bits, o caminho será:

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

Atualize a configuração executando o seguinte comando:

sudo ldconfig

Tente conectar usando:

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

ou:

sqlplus testuser/password

Observe que se você instalou a versão de 64 bits, o cliente será chamado sqlplus64.

Ketan Patel
fonte
Obrigado pelos detalhes. Isso me ajudou a concluir a instalação, especialmente a parte sobre a instalação da lib.
lonstar
1
... até que eu tentei correr sqlplus testuser / senha e tem "sqlplus: erro ao carregar bibliotecas compartilhadas: libsqlplus.so: arquivo objeto compartilhado não pode abrir: Nenhum tal lima ou diretório"
lonstar
4
... e foi porque acabei de tocar no arquivo oracle.conf e você precisa adicioná-lo a ele: /usr/lib/oracle/11.2/client/lib/ (certifique-se de verificar se realmente possui esse caminho e obrigado a marcelozambranav.blogspot.com/2012/08/… ). Depois que fiz isso, tudo estava bem.
lonstar
4
@K .K Patel Segui suas instruções, mas depois de digitar sqlplus na linha de comando, ele solicita a inserção de um nome de usuário e senha. E eu não sei o nome de usuário e senha. O que devo fazer?
Sabyasachi
Eles possuem o oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. Não posso simplesmente instalar o sqlplus one e terminar com ele?
Masterdilo #
3

A coisa alienígena não funcionou por causa de:

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

Então, eu fui com a solução fácil: Baixe os arquivos zip do Oracle (básico e sqlplus), extraia-os e coloque a pasta onde você coloca os arquivos de programa (por exemplo /usr/share). Em seguida, crie um script que execute o executável após definir a LD_LIBRARY_PATHvariável, para que as bibliotecas sejam encontradas:

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

Chame-o sqlplus, torne-o executável (chmod 755 sqlplus ) e coloque-o em um diretório no seu PATH(por exemplo /usr/bin/), para que o bash o encontre.

Execute como

sqlplus user/password@host:port/service

Se você pegar

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

instale a biblioteca com sudo apt-get install libaio1

Moritz Ringler
fonte
1

Eu acho que esse link ajudaria. É bastante descritivo. Certifique-se de seguir todas as etapas. Ainda assim, se você tiver algum problema, não hesite em comentar.

Vinit Kumar
fonte
6
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Elias Kagan
Isso é o que até eu fiz .. Mas parece que não está funcionando.!
Ant
Eu encontrei este tópico unix.com/ubuntu/157848-sqlplus-command-not-found.html.Tente se isso ajudaria você a melhorar. Eu não tenho a velocidade líquida para baixá-lo, caso contrário eu teria tentado e fornecer uma solução melhor.
Vinit Kumar
1
@ Ant "não está funcionando" não nos fornece pistas. Mostre-nos a saída de cada comando. Em seguida, teremos uma imagem geral do que está acontecendo e onde está o problema.
Savvas Radevic
0

É claro que a instalação correta é de pacotes oficiais como acima (faça o download do Instant Client Downloads ), mas você pode obter um sqlplus funcional apenas copiando esses arquivos (você pode encontrá-lo em qualquer computador com o oracle client instalado), e alguns msb são opcionais :

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

Como dependência adicional, incluí libaio.so- ele pode ser instalado comsudo apt-get install libaio1

Portanto, um exemplo de uso pode ser:

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

Apenas como um adendo à grande resposta de @Ketan Patel:

Esse script simples, mantido junto com os arquivos rpm baixados, compõe automaticamente o processo para outras instalações:

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

NOTA: Ele instala libaio1qual é o nome do libaio pelo menos no Ubuntu (e acho que também no Debian). Outras distribuições podem precisar ajustar o nome deste pacote para "libaio" ou qualquer que seja o nome do pacote correspondente.

Edit: Aqui está uma versão aprimorada com quebra de linha de leitura (credists para este 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!!";

Ainda é Oracle, mas pelo menos torna a dor um pouco mais suportável ...

bitifet
fonte