2012-07-17 3 views
2

일부 쉘 스크립트를 perl로 변환 중입니다. 모든 데이터베이스 액세스는 sqlplus를 사용하여 수행됩니다. perl을 사용하면 Oracle 데이터베이스에 액세스하는 더 좋은 방법 일 수 있습니다. 또는 sqlplus를 사용해야합니다.Perl에서 Oracle 데이터베이스에 액세스하는 방법?

답변

3

여기 DBI의 사용하는 간단한 예입니다 또한

use DBI; 

$user = 'donny'; 
$password = 'ppp'; 
$dbconnectstring = 'basetest'; 
$dbh = DBI->connect('dbi:Oracle:',$user.'@'.$password,$dbconnectstring); 

, 당신은 SQLPLUS에 액세스 할 수 있습니다 - 또는 명령 줄을 - 펄 스크립트 내에서. 백틱 사용 :

`cd dasd` 

예를 들어. 쉘을 펄 (perl)로 변환한다고 했으므로, 이것을 원한다면, 단지 아이디어 일 것입니다.

+0

"install_driver (Oracle) failed : @INC에서 DBD/Oracle.pm을 찾을 수 없습니다"라는 오류가 발생합니다. BDI 패키지를 설치해야합니까? – Bill

+0

예, 그렇습니다. perl 배포판에 따라 cpan DBD :: Oracle을 할 필요가 있거나 할 수 있습니다 ... 만약 당신이 ppm (- =.)을 가지고 있다면 당신이하는 일을 커맨드 라인에 입력하면 펄이 제대로 설치 되었다면 시작될 것입니다 당신을위한 것들. – PinkElephantsOnParade

7

DBI은 표준 Perl 데이터베이스 인터페이스입니다 (당연히 Oracle driver). DBIx::Class은 멋진 ORM 인터페이스로 래핑합니다.

SQL Plus는 Oracle에 대한 명령 줄 인터페이스 인 것으로 보입니다. Perl에서 사용하려면 문자열을 함께 mashing하여 (SQL injection 문제를 소개하는 좋은 방법) 명령 행 클라이언트에 쉘 아웃 한 다음 텍스트 출력을 구문 분석해야합니다. 그것은 광기입니다. Perl 데이터 구조가 작동하도록하는 인터페이스를 사용하십시오.

+1

이미 알맞은 [DBI의 POD 문서] (http://search.cpan.org/perldoc?DBD%3A%3AOracle) 위에 오라클에 연결하는 좋은 소개를 원한다면 다음 기사가 좋습니다 시작 예 : http://www.dba-oracle.com/t_dbi_interface1.htm – DVK

관련 문제