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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.