2016-09-14 2 views
-5

Perl 스크립트를 실행하는 동안 아래 오류 메시지가 나타납니다. 다음은 스크립트를 컴파일하는 중에 발생하는 오류 메시지입니다.Perl 스크립트가 Oracle 데이터베이스에 연결할 수 없습니다.

install_driver (오라클) 실패 :로드 할 수 없습니다 '/xxx/usr/local/lib/perl5/site_perl/5.10.0/sun4-solaris/auto/DBD/Oracle/Oracle.so' 모듈 DBD :: Oracle : ld.so.1 : perl : 치명적 : libclntsh.so.10.1 : 열지 못했습니다 : /xxx/usr/local/lib/perl5/5.10.0/sun4-solaris/에 해당 파일이나 디렉토리가 없습니다. DynaLoader.pm 행 203. at (eval 99) 3 행 (eval 99) 줄 3에서 컴파일이 필요하지 않습니다. 예상 공유 위치에 /im/xxx/xxx/xxxx에 이 있어야합니다. xxxx/XXXX/CommonOracle.pm 라인 71

최근에 오라클은 내 시스템에서 10.2에서 11.0으로 업그레이드되었습니다. 문제 해결을 도와 주시겠습니까? 나는 내 시스템의 관리자가 아니다. LD_LIBRARRY_PATH를 (를) 변경해야합니까? Solaris OS를 사용하고 있습니다.

+0

[질문]에 뭔가를 찾고 [mcve] – Aleksej

답변

1

질문을 잊어 버린 것처럼 보입니다. "어떻게 해결할 수 있습니까?"라고 가정합시다.

데이터베이스와 통신하려면 시스템에 많은 것을 설치해야합니다.

  • 사용중인 데이터베이스 시스템에 대한 클라이언트 라이브러리가 필요합니다. 아마도/usr/lib 아래 어딘가에있는 공유 객체 (.so) 파일이 될 것입니다.

  • 데이터베이스 엔진에 맞는 Perl 데이터베이스 드라이버가 필요합니다 (이 경우에는 DBD :: Oracle입니다). 처음부터 빌드하여 이것을 설치하면 (cpan 또는 cpanm 명령처럼) 위에서 언급 한 클라이언트 라이브러리의 개발 버전이 거의 필요할 것입니다. 미리 빌드 된 바이너리 버전 (Linux의 경우 .rpm 또는 .apt - Solaris의 경우에는이를 알지 못합니다)을 설치하는 경우에는 필요하지 않습니다.

  • Perl DBI 라이브러리가 필요합니다.

DBD :: Oracle이 설치되어있는 것처럼 보입니다. DBI도 설치 될 것입니다. 그러나 DBD :: Oracle은 클라이언트 라이브러리를 찾는 데 어려움을 겪고 있습니다. 이것은 DBD :: Oracle을 설치하는 데 필요한만큼 놀라운 일입니다.

그래서 오라클 클라이언트 라이브러리가 더 이상 설치되지 않았거나 설치되었지만 DBD :: Oracle이 찾고있는 곳이 아닌 것으로 의심됩니다.

DBD :: Oracle은 어떻게 설치 되었습니까? 오류를 검사 할 수있는 설치 로그가 있습니까?

+0

답장을 보내 주셔서 감사합니다. 하지만 설치 기록이 없습니다. 펄 모듈이 설치되었습니다. Perl DBI 라이브러리를 다시 검사 해 보겠습니다. Oracle 버전이 업그레이드되면 영향을 미칩니 까? –

+1

DBI 라이브러리가 문제가 아닙니다. 오라클 클라이언트 라이브러리 인 것 같습니다. DBD :: Oracle을 다시 설치하고 어떻게 진행되는지 확인하려고합니다. –

0

문제가 해결되었습니다. lib 파일 "libclntsh.so.10.1"이 (가) 라이브러리 경로에 없습니다. 파일을 복사했고 문제가 해결되었습니다

관련 문제