SqlPlus를 설치하는 방법?


19

here 지침에 따라 sqlplus를 설치하려고 했습니다 . 나는 여전히 얻고있다 :

sqlplus: command not found

sqlplus터미널에서 할 때

저는 우분투에서 초보자이며 우분투 12.04를 사용합니다.


난 당신이 sudo를 함께 외계인 -i 명령을 실행할 필요가 있다고 생각 :sudo alien -i
사바스 Radevic에게

답변:


26

우선 Instant Client 다운로드 를 다운로드해야합니다 . 터미널에 다음 명령을 입력하여 rpm 패키지를 설치할 수 있도록 외계인 패키지를 설치하십시오.

sudo apt-get install alien

완료되면 rpm 파일이있는 폴더로 이동하여 다음을 실행하십시오.

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

설치해야합니다 libaio.so. 다음 명령을 입력하여 수행하십시오.

sudo apt-get install libaio1

Oracle 구성 파일을 작성하십시오.

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

이 줄을 해당 파일에 넣으십시오.

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

참고-64 비트 설치의 경우 경로는 다음과 같습니다.

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

다음 명령을 실행하여 구성을 업데이트하십시오.

sudo ldconfig

다음을 사용하여 연결을 시도하십시오.

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

또는:

sqlplus testuser/password

64 비트 버전을 설치 한 경우 클라이언트를 호출 sqlplus64합니다.


자세한 내용에 감사드립니다. 특히 lib 설치에 관한 부분 인 설치를 완료하는 데 도움이되었습니다.
lonstar

1
... sqlplus testuser / password를 실행하려고 할 때까지 "sqlplus : 공유 라이브러리를로드하는 동안 오류가 발생했습니다 : libsqlplus.so : 공유 객체 파일을 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다"
lonstar

4
... oracle.conf 파일을 방금 만졌 기 때문에 /usr/lib/oracle/11.2/client/lib/ 파일을 추가해야합니다. (실제로 확인하십시오. 경로, 감사하는 marcelozambranav.blogspot.com/2012/08/... ). 일단 그렇게하면 모든 것이 잘되었습니다.
lonstar

4
@K .K Patel 나는 당신의 지시를 따랐지만 커맨드 라인에 sqlplus를 입력하면 사용자 이름과 암호를 입력하라는 메시지가 나타납니다. 그리고 나는 사용자 이름과 비밀번호를 모른다. 어떻게해야합니까?
Sabyasachi

그들은 Oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite를 가지고 있습니다. sqlplus를 설치하고 완료 할 수는 없습니까?
masterxilo

3

외계인은 다음과 같은 이유로 작동하지 않았습니다.

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

그래서 쉬운 해결책을 찾았습니다. Oracle (기본 및 sqlplus) 에서 zip 파일을 다운로드하고 압축을 풀고 프로그램 파일을 넣은 폴더를 넣으십시오 (예 :) . 그런 다음 라이브러리를 찾을 수 있도록 변수를 설정 한 후 실행 파일을 실행하는 스크립트를 작성하십시오 ./usr/shareLD_LIBRARY_PATH

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

그것을 호출하고 sqlplus실행 가능하게 만들고 ( chmod 755 sqlplus) bash가 찾도록 디렉토리 PATH(예 :)에 넣으 /usr/bin/십시오.

다음과 같이 실행

sqlplus user/password@host:port/service

당신이 얻는다면

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

라이브러리를 설치 sudo apt-get install libaio1


1

링크 가 도움 이 될 것이라고 생각합니다 . 꽤 설명 적입니다. 모든 단계를 따르십시오. 그래도 문제가 있으면 주저하지 말고 의견을 보내십시오.


6
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Eliah Kagan

심지어 내가 한 일 ..하지만 작동하지 않는 것 같습니다.!
Ant 's

이 스레드 unix.com/ubuntu/157848-sqlplus-command-not-found.html을 찾았습니다.이 방법이 더 도움이되는지보십시오. 나는 그것을 다운로드 할 수있는 순 속도가 없다. 그렇지 않으면 직접 시도하고 더 나은 솔루션을 제공했을 것이다.
Vinit Kumar

1
@Ant의 "작동하지 않습니다"는 단서를 제공하지 않습니다. 각 명령의 출력을 보여주십시오. 그런 다음 현재 진행 상황과 문제의 위치를 ​​대략적으로 파악합니다.
Savvas Radevic

0

물론 올바른 설치는 위와 같은 공식 패키지 ( Instant Client 다운로드 다운로드 )에서 이루어 지지만 이러한 파일을 복사하여 전체 sqlplus를 얻을 수 있습니다 (Oracle 클라이언트가 설치된 모든 컴퓨터에서 찾을 수 있음). 일부 msb는 선택 사항입니다 :

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

추가 의존성으로 다음을 포함 libaio.so했습니다.sudo apt-get install libaio1

따라서 샘플 사용은 다음과 같습니다.

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

0

@Ketan Patel의 훌륭한 답변에 대한 부록과 마찬가지로 :

다운로드 한 rpm 파일과 함께 유지되는이 간단한 스크립트는 추가 설치 프로세스를 자동화합니다.

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

참고 : 그것은 설치 libaio1이다 가 libaio 적어도 우분투의 이름 (내가 너무 데비안에서 생각). 다른 배포판에서는이 패키지 이름을 "libaio"또는 해당 패키지 이름으로 조정해야합니다.

편집 : 여기에 readline 줄 바꿈 ( 이 게시물 의 credists)이있는 향상된 버전 이 있습니다 .

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

여전히 오라클이지만 적어도 고통을 좀 더 견딜 수있게합니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.