RE: How to use perl dbi to create a database
[email protected] ("Sharma, Sumit")
| Newsgroups | perl.dbi.users |
|---|---|
| Message-ID | <[email protected]> |
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
-----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
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
> On Mon, Jun 28, 2010 at 2:21 PM, Sharma, Sumit
<[email protected]>wrote:
>
>> Hello,
>>
>>
>>
>> I am trying to use Perl to identify if a given database exists or not
>> and if it doesn't create the database and then connect to it.
>>
>>
>>
>> Is there any way using Perl DBI to first identify whether a given
>> database exists or not if it doesn't create the database?
>>
>>
>>
>> Sumit
>>
>>
>> Notice: This e-mail is intended solely for use of the individual or
entity
>> to which it is
>> addressed and may contain information that is proprietary,
privileged,
>> company confidential
>> and/or exempt from disclosure under applicable law. If the reader is
not
>> the intended
>> recipient or agent responsible for delivering the message to the
intended
>> recipient, you are
>> hereby notified that any dissemination, distribution or copying of
this
>> communication is
>> strictly prohibited. If this communication has been transmitted from
a U.S.
>> location it may
>> also contain data subject to the International Traffic in Arms
Regulations
>> or U.S. Export
>> Administration Regulations and cannot be disseminated, distributed or
>> copied to foreign
>> nationals, residing in the U.S. or abroad, without the prior approval
of
>> the U.S. Department
>> of State or appropriate export licensing authority. If you have
received
>> this communication
>> in error, please notify the sender by reply e-mail or collect
telephone
>> call and delete or
>> destroy all copies of this e-mail message, any physical copies made
of this
>> e-mail message
>> and/or any file attachment(s).
>>
>>
>
Notice: This e-mail is intended solely for use of the individual or entity to which it is
addressed and may contain information that is proprietary, privileged, company confidential
and/or exempt from disclosure under applicable law. If the reader is not the intended
recipient or agent responsible for delivering the message to the intended recipient, you are
hereby notified that any dissemination, distribution or copying of this communication is
strictly prohibited. If this communication has been transmitted from a U.S. location it may
also contain data subject to the International Traffic in Arms Regulations or U.S. Export
Administration Regulations and cannot be disseminated, distributed or copied to foreign
nationals, residing in the U.S. or abroad, without the prior approval of the U.S. Department
of State or appropriate export licensing authority. If you have received this communication
in error, please notify the sender by reply e-mail or collect telephone call and delete or
destroy all copies of this e-mail message, any physical copies made of this e-mail message
and/or any file attachment(s).