2010-06-16 5 views
2

SQL Server에 대해 perl 및 dbi를 사용하여 저장 프로 시저의 반환 값을 검색하려면 어떻게해야합니까? 누군가가 예제를 제공 할 수 있습니까?Perl Dbi 및 저장 프로 시저

+0

나는 다른 영역에서 이것을 대답했다. http://stackoverflow.com/questions/64200/how-do-i-call-mysql-stored-procedures-from-perl – Nexion

답변

8

DBD :: ODBC t/dir에 예제가 있습니다 (20SqlServer.t 참조). 기본적으로 다음을 수행합니다 (전체 작업 예제가 아님).

my $output; 
my $input = 'fred'; 
my $sth = $dbh->prepare(q/{ ? = call myproc(?) }/); 
$sth->bind_param_inout(1, \$output, 100); 
$sth->bind_param(2, $input); 
$sth->execute 

이제 $ 결과에는 프로 시저가 반환 한 값이 포함되어야합니다. bind_param_inout의 길이를 충분히 설정했는지 확인하십시오 (위의 100).

+0

+1 예제에서 방금 내 문제 하나를 해결했습니다. 감사합니다 – bvr

+0

SQL sproc에 대한 알림을 보내 주셔서 감사합니다 +1. (- : 이것은 sproc의 반환 값을 검색하는 방법을 설명하지 않습니다. –

+1

이 프로 시저의 반환 값을 얻는 방법을 어떻게 설명하는지 이해가 가지 않습니다. "? ="반환 값 즉, 프로 시저를 끝내려면 (데이터베이스에서 지원하는 값을 반환한다고 가정하고) return XXX를 사용하면 첫 번째 자리 표시자가 반환 값이됩니다. 위의 예는 함수 (모든 db에서 값을 반환 함)와 첫 번째 자리 표시자는 반환 값이 될 것이고, 예를 들어 반환 값이라고 생각하는 것을 정의해야합니다. – bohica