이것이 Perl 또는 Oracle 문제인지 확실하지 않습니다. 나는 둘 다 처음이야.Oracle에서 선택 쿼리 캐싱 중지 - Perl에서 쿼리 실행
테이블에 1 개의 행이 있습니다. 그 값은 숫자입니다. 이 번호는 매우 자주 업데이트됩니다.
이 값을 얻기 위해 Perl에서 select 쿼리를 실행하면 항상 최신 값이되는 것은 아닙니다. 일반적으로 오래된 값입니다. SQLPLUS를 통해 동일한 쿼리를 실행하고 올바른 값을 볼 것입니다 ... Perl은 테이블의 데이터를 삭제하고 다시 삽입하면 올바른 값만 표시합니다.
그래서 궁금합니다.이 쿼리가 어떻게 캐시되고 있습니까?
이 나는 펄에서 쿼리를 실행 해요 방법은 다음과 같습니다
my $sql_latest_jobID = "SELECT /*+ NOCACHE */ job_number FROM example_table WHERE ID = 1";
my $sth = $dbh->prepare($sql_latest_jobID)
or die "Couldn't prepare statement: " . $dbh->errstr;
$sth->execute();
my @data = $sth->fetchrow_array();
$jobID = $data[0];
는 또한 NOCACHE없이 쿼리를 시도했다. 같은 결과가있었습니다.
이것은 불가능합니다. 업데이트가 완료되었는지 확인 하시겠습니까? 오라클은 더티 읽기를 허용하지 않으므로 SQL * Plus에서 변경 사항을 커밋하지 않으면 Perl에서 볼 수 없습니다. 각 세션은 독립적입니다. – NullUserException