bigpresh / bigpresh/Dancer-Plugin-Database

Connection failure to Oracle DB

Open
#69 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Perl
Stars
39
Forks
36
PR merge metrics
No merged PRs in 30d

Description

Attempting to connect to an Oracle DB using `database` fails with the message

```
Could not create a db handle: DBI connect('database=test','username',...)
failed: ORA-12154: TNS:could not resolve the connect identifier
specified (DBD ERROR: OCIServerAttach)
```

Using the same config params to manually create the DB handle works correctly, though, so the following code will create a DB handle after emitting the warning above.

```
local $@;
eval {
$dbh = database;
};
if ($@) {
carp "Could not create a db handle: $@";
$dbh = DBI->connect(
'dbi:' . config->{plugins}{Database}{driver} . ':' . config->{plugins}{Database}{database},
config->{plugins}{Database}{username},
config->{plugins}{Database}{password},
config->{plugins}{Database}{dbi_params}
) or die $DBI::errstr;
}
```

`ORA-12154` refers to an error where a config file is either unreachable, incorrectly specified, or has some other similar error. More details:
- http://ss64.com/ora/syntax-ora-12154.html
- http://orafaq.com/wiki/ORA-12154
- http://www.dba-oracle.com/t_ora_12154_tns_resolve_service_name.htm

Given that manual creation works, the various environment params must be set correctly, so it must be something in the DBH creation that is going wrong.

The plugin works fine when used with an SQLite db, so it's an Oracle-specific issue. I'm connecting to an Oracle 11g db, if that is helpful.

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.