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
I don't use Windows that much and I certainly do not use Oracle on Windows but that error suggests that you have not got an Oracle client installed on your machine or it could not be found. Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com > > > > > -----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 >