diff --git a/modules/Bio/EnsEMBL/DBSQL/Driver/Oracle.pm b/modules/Bio/EnsEMBL/DBSQL/Driver/Oracle.pm index 63c73adb33f16135503c6ebbb810e84043872d84..fb567c7e2af1e901711603173a48535aeecdd7a0 100644 --- a/modules/Bio/EnsEMBL/DBSQL/Driver/Oracle.pm +++ b/modules/Bio/EnsEMBL/DBSQL/Driver/Oracle.pm @@ -45,10 +45,18 @@ sub new { sub connect_params { my ($self, $conn) = @_; + my $host = $conn->host(); my $dbname = $conn->dbname(); - - my $dsn = "DBI:Oracle:"; - my $username = sprintf("%s@%s", $conn->username(), $dbname ); + my ($dsn, $username); + + if (defined $host) { + my $port = $conn->port() || 1521; + $dsn = sprintf("DBI:Oracle://%s:%s/%s", $host, $port, $dbname); + $username = $conn->username(); + } else { + $dsn = "DBI:Oracle:"; + $username = sprintf("%s@%s", $conn->username(), $dbname ); + } return { dsn => $dsn,