단순히이 작업을 수행하는 더 좋은 방법이 될 것 같지만 여전히 찾지 못했습니다. 그리고 나는 이것을 수행하는 방법을 사용할 수있는 유일한 사람이 아니라고 확신합니다 : 한 행에 하나의 필드 만 생성 한 SQL 쿼리를 실행 한 다음 해당 필드를 스칼라에 할당하십시오. (필자의 경우 쿼리 결과 둘 이상의 필드/행이 발생하면 스크립트가 중단되는 것보다 더 큰 문제가 생길 수 있습니다.)SQL 쿼리의 결과를 스칼라로 할당하기
my $timestamp;
my $cmd = $dbh->prepare('SELECT cast(now() AS timestamp);') or die $!;
$cmd->execute();
while (my @asd = $cmd->fetchrow_array) { $timestamp = $asd[0] }
더러운,하지만 작동 : 예를 들어
는 SQL 서버에서 타임 스탬프, 하나는 사용할 수 얻을 수 있습니다. 하지만 특히 perl과 postgresql이 DBI를 통해 서로 통신 할 수있는 방법을 고려할 때, 4 줄을 사용하는 것이 단순한 할당을위한 것 같습니다. 물론, 나는 그것에 대한 서브 루틴을 쓸 수 있지만, 내가 $dbh->do()
와 함께 데이터를 제출하는 것처럼 쉽게 데이터를 가져올 수있는 네이티브가 아닌가?
그리고 네, 저는 구글을 시도했습니다.
매력처럼 작동합니다! 둘 이상이 반환되지 않으면 첫 번째 행을 기본값으로 설정하는 장점이 있습니다. – Jarmund
정말요? 나는 그것이 첫 행과 열을 잡았다 고 생각했다. – araqnid
죄송합니다, 예, 우선. 그에 따라 편집, 그리고 지금은 아침에 커피를 마시고 있습니다. – Jarmund