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


Reply via email to