Sharma, Sumit wrote:
Hello All,
Thanks for your suggestions. I have following code written to list all
available drivers along with respective data-sources. But, I get some
errors for Oracle driver, can anybody please suggest the solution?
Thanks
===============
#!/usr/local/bin/perl
use DBI; # for database
### Probe DBI for the installed drivers
my @drivers = DBI->available_drivers();
die "No drivers found!\n" unless @drivers; # should never happen
### Iterate through the drivers and list the data sources for
### each one
foreach my $driver ( @drivers ) {
print "Driver: $driver\n";
my @dataSources = DBI->data_sources( $driver );
foreach my $dataSource ( @dataSources ) {
print "\tData Source is $dataSource\n";
}
print "\n";
}
===============
And I get the following output
C:\Perl\bin>dbi_drivers.pl
Driver: CSV
Data Source is DBI:CSV:f_dir=.
Driver: DBM
Data Source is DBI:DBM:f_dir=.
Driver: ExampleP
Data Source is dbi:ExampleP:dir=.
Driver: File
Data Source is DBI:File:f_dir=.
Driver: Gofer
Driver: ODBC
Data Source is dbi:ODBC:MS Access Database
Data Source is dbi:ODBC:Excel Files
Data Source is dbi:ODBC:dBASE Files
Data Source is dbi:ODBC:myodbc3-test
Data Source is dbi:ODBC:Visio Database Samples
Data Source is dbi:ODBC:friday
Data Source is dbi:ODBC:sunday_new
Data Source is dbi:ODBC:junk
Data Source is dbi:ODBC:sunday_another_new
Data Source is dbi:ODBC:sunday_another_another_new
Data Source is dbi:ODBC:sunday_another_another_new_comp
Data Source is dbi:ODBC:example
Data Source is dbi:ODBC:junk1
Data Source is dbi:ODBC:july
Driver: Oracle install_driver(Oracle) failed: Can't load
'C:/Perl/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle:
load_file:The specified module could not be found at
C:/Perl/lib/DynaLoader.pm line 226.
at (eval 37) line 3
Compilation failed in require at (eval 37) line 3.
Perhaps a required shared library or dll isn't installed where expected
at C:\Perl\bin\dbi_drivers.pl line 19
You are missing the Oracle client. Set the ORACLE_HOME environment
variable or the path to point to the location of your Oracle client.
-----Original Message-----
From: Martin Evans [mailto:martin.ev...@easysoft.com]
Sent: 29 June 2010 17:16
To: Ashish Mukherjee
Cc: Sharma, Sumit; dbi-users@perl.org
Subject: Re: How to use perl dbi to create a database
Ashish Mukherjee wrote:
http://search.cpan.org/~timb/DBI-1.611/DBI.pm#data_sources
This is how you can check for existence of a database.
- Ashish
That won't help you with some DBDs e.g., with DBD::ODBC this returns a
list of data sources and not databases. In DBD::ODBC a data source does
not have to name a database. A data source is a means to connect to a
database engine and it may contain multiple databases. Usually there is
some meta table where you can select the list of databases and a method
of changing from one to another. As an example, when you create an ODBC
data source for MS SQL Server (via the GUI ODBC Administrator) you can
choose any name you like for the data source and you can pick the
database or leave it to the default database but there is no direct
relationship between the data source name and the database (unless you
use that convention yourself).
Martin