Sqlplus:找不到命令

Sqlplus:找不到命令

我有两台虚拟机ubuntu,一台是安装oracle 11gexpress时的服务器,一台是简单的客户端。我的目标是从客户端计算机远程运行 SQL 查询。所以我准备了查询并将其发送到服务器。但在下面的脚本中以及建立与服务器的连接后,sqlplus 不起作用。它向我显示以下错误:

Sqlplus:找不到命令

在这项工作中我使用这个脚本:

#! /bin/bash

read -p "saisir votre requete: "  req

printf "%s\n" "$req" > t1.txt

sed -e 's/[;,()'\'']/ /g;s/  */ /g' t1.txt > t.txt

`tr -s '[[:blank:]]' '\n' < t.txt `|

  while IFS= read -r word; do

if ! [[ "$word" =~ $(echo ^\($(paste -sd'|' ./req.txt)\)$) ]]; then

var=$(base64 <<< $word)


sed -i -e "s/$word/$var/g" t1.txt
fi

  done

enter code here

scp requete.sql [email protected]:/home/cloud1

#Conection to the Server

ssh [email protected] '/home/cloud1/Cloud-Serv'

Cloud-Serv 文件包含以下代码:

#! /bin/bash
"echo "Connection is done !"

sudo service oracle-xe start

sqlplus / as sysdba

exit

答案1

在大多数情况下,Oracle 实例在特殊帐户下运行,例如 oracle。如果您以该用户身份登录,则需要设置正确的环境,其中$ORACLE_BASE$ORACLE_HOME$ORACLE_SID是最重要的。此外,该PATH变量可以扩展到通常所在的$ORACLE_HOME/bin位置sqlplus。查看oraenv 设置正确的环境并尝试使用sqlplus执行$ORACLE_HOME/bin/sqlplus

答案2

大多数时候,我们将数据库设置从一台服务器复制到另一台服务器。因此,另一台服务器的 oracle HOME 详细信息可能会错误地复制到新服务器。

在新服务器中定位 sqlplus 的方法。

[severdetais scripts]$ locate sqlplus
/oracli/app/oracle/product/11.2.0.3/client_1/sqlplus
/oracli/app/oracle/product/11.2.0.3/client_1/bin/sqlplus
/oracli/app/oracle/product/11.2.0.3/client_1/instantclient/libsqlplusic.so

并在导出属性文件中使用上述位置,如下所示。

export ORACLE_CLIENT=/oracli/app/oracle/product/11.2.0.3/client_1/bin/
export ORACLE_HOME=/oracli/app/oracle/product/11.2.0.3/client_1
export PATH=$PATH:$JAVA_HOME:$JRE_HOME:$ORACLE_CLIENT:$ORACLE_HOME
export LD_LIBRARY_PATH=${ORACLE_CLIENT}:${LD_LIBRARY_PATH}:${ORACLE_HOME}:$ORACLE_HOME/lib
export SQLPATH=${ORACLE_CLIENT}:${SQLPATH}:${ORACLE_HOME}

希望这可以解决问题!

相关内容