Sqlplus: 명령을 찾을 수 없습니다

Sqlplus: 명령을 찾을 수 없습니다

두 개의 가상 머신 우분투가 있습니다. 하나는 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}

이것이 문제를 해결하기를 바랍니다!

관련 정보