Veuillez suggérer une solution pour résoudre ce problème ?? En donnant la commande sqlplus /nolog
l'erreur s'est produite est
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
..
La configuration minimale pour exécuter correctement sqlplus
à partir du shell est de définir Oracle_HOME
et LD_LIBRARY_PATH
. Pour plus de facilité d'utilisation, vous souhaiterez peut-être également définir PATH
en conséquence.
En supposant que vous avez décompressé les archives requises dans /opt/Oracle/instantclient_11_1
:
sh$ export Oracle_HOME=/opt/Oracle/instantclient_11_1
sh$ export LD_LIBRARY_PATH="$Oracle_HOME"
sh$ export PATH="$Oracle_HOME:$PATH"
sh$ sqlplus
SQL*Plus: Release 11.1.0.7.0 - Production on Wed Dec 31 14:06:06 2014
...
Sudo sh -c "echo /usr/lib/Oracle/12.2/client64/lib > /etc/ld.so.conf.d/Oracle-instantclient.conf";Sudo ldconfig
de https://help.ubuntu.com/community/Oracle%20Instant%20Client
J'ai résolu cette erreur en définissant
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Oracle_HOME/lib:$Oracle_HOME
oui, non seulement $ Oracle_HOME/lib mais aussi $ Oracle_HOME.
PERMISSIONS: Je tiens à souligner l'importance des autorisations pour "sqlplus".
Pour que tout autre utilisateur UNIX autre que le propriétaire/groupe puisse exécuter sqlplus et accéder à une base de données Oracle, des autorisations de lecture/exécution sont requises (rx) pour ces 4 répertoires:
$ Oracle_HOME/bin, $ Oracle_HOME/lib, $ Oracle_HOME/oracore, $ Oracle_HOME/sqlplus
Environnement. Réglez-les correctement:
A. Oracle_HOME (exemple: Oracle_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/
)
B. LD_LIBRARY_PATH (exemple: Oracle_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib
)
C. Oracle_SID
D. CHEMIN
export PATH="$Oracle_HOME/bin:$PATH"
Je sais que c'est un vieux fil de discussion, mais je suis rentré dans le coup avec Oracle 12c et LD_LIBRARY_PATH a été défini correctement. J'ai utilisé strace
pour voir exactement ce qu'il cherchait et pourquoi il a échoué:
strace sqlplus /nolog
sqlplus essaie de charger cette bibliothèque à partir de différents répertoires, certains n'existaient pas dans mon installation. Ensuite, il a essayé celui que j'avais déjà sur mon LD_LIBRARY_PATH:
open ("/ Oracle/product/12.1.0/db_1/lib/libsqlplus.so", O_RDONLY) = -1 EACCES (Autorisation refusée)
Donc, dans mon cas, la bibliothèque avait 740 autorisations, et comme mon utilisateur n'était pas propriétaire ou n'avait pas de groupe Oracle affecté, je ne pouvais pas le lire. Si simple chmod +r
aidé.
Vous pouvez essayer l'utilisation:
# echo "/usr/lib/Oracle/12.2/client64/lib" > /etc/ld.so.conf.d/Oracle.conf
# ldconfig
Ce problème est dû au fait que le client oracleinstant ne configure pas la bibliothèque partagée.
Vous devriez déjà avoir toutes les variables nécessaires dans /etc/profile.d/Oracle.sh
. Assurez-vous de vous l'approvisionner:
$ source /etc/profile.d/Oracle.sh
PS: le contenu de ce fichier ressemble à:
Oracle_HOME=/usr/lib/Oracle/11.2/client64
PATH=$Oracle_HOME/bin:$PATH
LD_LIBRARY_PATH=$Oracle_HOME/lib
export Oracle_HOME
export LD_LIBRARY_PATH
export PATH
Si vous ne l'avez pas, créez-le et sourcez-le.
Cela signifie que vous n'avez pas défini de variables Oracle_HOME et Oracle_SID. Veuillez définir le bon fonctionnement de $ Oracle_HOME et $ Oracle_SID et ensuite exécuter la commande sqlplus/nolog. Ça va marcher.
Pourriez-vous s'il vous plaît vérifier si LD_LIBRARY_PATH pointe vers les bibliothèques Oracle