¿Cómo instalar SqlPlus?

19

Intenté instalar sqlplus siguiendo las instrucciones de aquí . Todavía estoy obteniendo:

sqlplus: command not found

cuando lo hago sqlplusdesde mi terminal.

Soy un novato en Ubuntu y uso Ubuntu 12.04.

Hormiga
fuente
Creo que necesitas ejecutar los comandos alienígenas -i con sudo:sudo alien -i
Savvas Radevic

Respuestas:

26

En primer lugar, debe descargar las descargas instantáneas del cliente . Instale el paquete alien para que pueda instalar paquetes rpm escribiendo el siguiente comando en la terminal.

sudo apt-get install alien

Una vez hecho esto, vaya a la carpeta donde se encuentran los archivos rpm y ejecute lo siguiente:

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

Necesitas instalar libaio.so. Escriba el siguiente comando para hacerlo:

sudo apt-get install libaio1

Crear archivo de configuración de Oracle:

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

Pon esta línea en ese archivo:

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

Nota: para instalaciones de 64 bits, la ruta será:

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

Actualice la configuración ejecutando el siguiente comando:

sudo ldconfig

Intenta conectarte usando:

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

o:

sqlplus testuser/password

Tenga en cuenta que si instaló la versión de 64 bits, se llama al cliente sqlplus64.

Ketan Patel
fuente
Gracias por los detalles Me ayudó a completar la instalación, especialmente la parte sobre la instalación de la lib.
lonstar
1
... hasta que intenté ejecutar sqlplus testuser / password y obtuve "sqlplus: error al cargar bibliotecas compartidas: libsqlplus.so: no se puede abrir el archivo de objeto compartido: No
existe
44
... y fue porque acabo de tocar el archivo oracle.conf y resulta que necesitas agregarlo: /usr/lib/oracle/11.2/client/lib/ (asegúrate de verificar que realmente tienes eso camino, y gracias a marcelozambranav.blogspot.com/2012/08/… ). Una vez que hice eso, todo estuvo bien.
lonstar
44
@K .K Patel Seguí tus instrucciones, pero después de escribir sqlplus en la línea de comando, me pide que ingreses un nombre de usuario y una contraseña. Y no sé el nombre de usuario y contraseña. ¿Qué tengo que hacer?
Sabyasachi
Tienen oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. ¿No puedo instalar el sqlplus y terminar con él?
masterxilo
3

Lo extraño no funcionó por:

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

Así que elegí la solución fácil: descargue los archivos zip de Oracle (básico y sqlplus), extráigalos y coloque la carpeta donde coloca los archivos de programa (por ejemplo /usr/share). Luego, cree un script que ejecute el ejecutable después de configurar la LD_LIBRARY_PATHvariable, de modo que se encuentren las bibliotecas:

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

Llámelo sqlplus, hágalo ejecutable ( chmod 755 sqlplus) y colóquelo en un directorio en su PATH(por ejemplo /usr/bin/), para que bash lo encuentre.

Ejecútalo como

sqlplus user/password@host:port/service

Si lo consigues

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

instalar la biblioteca con sudo apt-get install libaio1

Moritz Ringler
fuente
1

Creo que este enlace ayudaría. Es bastante descriptivo. Asegúrate de seguir todos los pasos. Aún así, si tiene algún problema, no dude en comentar.

Vinit Kumar
fuente
66
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Eliah Kagan el
Eso es lo que incluso he hecho ... ¡Pero no parece estar funcionando!
Ant
Encontré este hilo unix.com/ubuntu/157848-sqlplus-command-not-found.html. Pruebe si esto le ayudaría mejor. No tengo la velocidad neta para descargarlo, de lo contrario lo habría probado yo mismo y daría una mejor solución.
Vinit Kumar
1
@ Ant "no está funcionando" no nos proporciona pistas. Muéstranos el resultado de cada comando. Luego tendremos una idea general de lo que está sucediendo y dónde está el problema.
Savvas Radevic
0

Por supuesto, la instalación correcta es de paquetes oficiales como el anterior ( descargue las descargas instantáneas del cliente ), pero puede obtener un sqlplus completo con solo copiar estos archivos (puede encontrarlo en cualquier computadora con el cliente oracle instalado), y algunos msb son opcionales :

./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 dependencia adicional, incluí libaio.so: se puede instalar consudo apt-get install libaio1

Entonces, un uso de muestra puede ser:

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

Solo como una adición a la gran respuesta de @Ketan Patel:

Este simple script, guardado junto con los archivos rpm descargados, automatiza el proceso para otras instalaciones:

#!/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: Instala libaio1cuál es el nombre de libaio al menos en Ubuntu (y creo que también en Debian). Es posible que otras distribuciones necesiten ajustar este nombre de paquete a "libaio" o cualquiera que sea el nombre del paquete correspondiente.

Editar: Aquí hay una versión mejorada con ajuste de línea de lectura (acreedores para esta publicación ):

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

Todavía es Oracle, pero al menos hace que el dolor sea un poco más soportable ...

bitifet
fuente