Re: How to use perl dbi to create a database
[email protected] (John Scoles)
| Newsgroups | perl.dbi.users |
|---|---|
| Message-ID | <[email protected]> |
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:[email protected]]
> Sent: 29 June 2010 17:16
> To: Ashish Mukherjee
> Cc: Sharma, Sumit; [email protected]
> 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
>
>