[svn:dbd-oracle] r15017 - dbd-oracle/trunk
[email protected] Thu, 24 Nov 2011 05:23:30 -0800 (PST)
| Newsgroups | perl.dbd.oracle.changes |
|---|---|
| Message-ID | <[email protected]> |
Author: mjevans
Date: Thu Nov 24 05:23:29 2011
New Revision: 15017
Modified:
dbd-oracle/trunk/Changes
dbd-oracle/trunk/Oracle.pm
Log:
patch for ora_server_version and dbs not open
Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes (original)
+++ dbd-oracle/trunk/Changes Thu Nov 24 05:23:29 2011
@@ -1,5 +1,13 @@
Revision history for DBD::Oracle
+Changes in DBD-Oracle X.XX (XX-XX-XXXX)
+
+ [BEG FIXES]
+
+ - applied patch from Charles Jardine avoiding undefined values
+ warnings in ora_server_version when the database is not open
+ [RT72623] (Martin J. Evans)
+
Changes in DBD-Oracle 1.35_00 (18-11-2011)
[BUG FIXES]
Modified: dbd-oracle/trunk/Oracle.pm
==============================================================================
--- dbd-oracle/trunk/Oracle.pm (original)
+++ dbd-oracle/trunk/Oracle.pm Thu Nov 24 05:23:29 2011
@@ -952,12 +952,15 @@
sub ora_server_version {
my $dbh = shift;
return $dbh->{ora_server_version} if defined $dbh->{ora_server_version};
- $dbh->{ora_server_version} =
- [ split /\./, $dbh->selectrow_array(<<'SQL', undef, 'Oracle%', 'Personal Oracle%') .''];
-SELECT version
- FROM product_component_version
- WHERE product LIKE ? or product LIKE ?
+ my $banner = $dbh->selectrow_array(<<'SQL', undef, 'Oracle%', 'Personal Oracle%');
+SELECT banner
+ FROM v$version
+ WHERE banner LIKE ? OR banner LIKE ?
SQL
+ if (defined $banner) {
+ my @version = $banner =~ /(?:^|\s)(\d+)\.(\d+)\.(\d+)\.(\d+)\.(\d+)(?:\s|$)/;
+ $dbh->{ora_server_version} = \@version if @version;
+ }
}
sub ora_nls_parameters {