Hi,
http://www.orafaq.com/wiki/Tnsnames.ora
will provide you with the information you are looking for.
You may want to read up on some oracle basic before continueing to save
yourself additional hassle if you have no oracle knowledge. JHMO.
Regards,
Michael
On Tue, 28 Jul 2009, Ming Yu wrote:
Date: Tue, 28 Jul 2009 07:51:12 -0700 (PDT)
From: Ming Yu <[email protected]>
To: [email protected], [email protected]
Subject: Re: Perl DBI and DBD::ODBC for Oracle on Windows
I changed {Microsoft ODBC for Oracle} to {Oracle in instantclient_11_1} as
specified in ODBC_IC_Readme_Win.html file. And I added sid=ORADB (my database
name). I'm reading the instruction in the ODBC_IC_Readme_Win.html file and here
are my question:
How do you set up the TNS_ADMIN? I don't seem to be able to find any file with
extension .ora in my ORACLE_HOME directory. Should I create one myself? Sorry
if this seems to be a dummy question. I'm really a starter at setting up this
whole thing.
* Define the TNS_ADMIN to point the .ora files directory for OCI.
* This needs to be set for OCI to resolve the TNS name.
* If TNS_ADMIN is not set, OCI will examine an operating system
dependent set of directories to find tnsnames.ora. This search path includes
looking in the directory %ORACLE_HOME%/network/admin/tnsnames.ora. This is the
only reason to set the ORACLE_HOME environment variable for Oracle Instant
Client. If ORACLE_HOME is set when running Instant Client applications, it must
be set to a directory where Instant Client exists (in this case
C:\Oracle\instantclient_11_1).
After I run the program with the changes, I got the following error:
DBI connect('driver={Oracle in
instantclient_11_1};server=10.1.6.9:1521;sid=ORADB;uid=oradbuser;pwd=oradbpassword;','',...)
failed: [Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified (SQL-IM002) at testOracle.pl line 31
Thanks a lot for your help.
Ming
----- Original Message ----
From: "[email protected]" <[email protected]>
To: [email protected]; [email protected]
Sent: Tuesday, July 28, 2009 9:21:02 AM
Subject: RE: Perl DBI and DBD::ODBC for Oracle on Windows
Hello
1) By adding sid=xxxx in the DSN, you should be able to point to the correct
SID.
So in your case :
my $DSN = 'driver={Microsoft ODBC for
Oracle};server=10.1.6.9:1521;sid=XXXXXX;uid=oradbuser;pwd=oradbpassword;';
2) You should not use "Microsoft ODBC for Oracle" that is a very old driver,
that perhaps works for Oracle 7 or 8.
If you already installed Oracle InstantClient SQLPLUS package, then I would
recommend you to download the components : Basic and ODBC and extract them in
the same folder as sqlplus.
Then follow instructions in README files and specially in "ODBC_IC_Readme_Win.html" file
so that you should be able to use the driver provide by ODBC instantclient package. It should be
something like "Oracle in instantclient_xx_y"
Best Regards
Pascal
-----Message d'origine-----
De : Ming Yu [mailto:[email protected]]
Envoyé : mardi 28 juillet 2009 14:14
À : [email protected]
Objet : Perl DBI and DBD::ODBC for Oracle on Windows
Hi,
I've been trying to connect to a remote Oracle database through Windows
XP but couldn't make it work after a few days' effort. This is what
I've done:
1. Install ActivePerl on Windows.
2. Install DBI module.
3. Install DBD::ODBC module.
4. Inside my perl code, I choose to connect without DSN:
use DBI;
use DBD::ODBC;
my $database = "ORADB";
my $DSN = 'driver={Microsoft ODBC for
Oracle};server=10.1.6.9:1521;uid=oradbuser;pwd=oradbpassword;';
my $dbh = DBI->connect("dbi:ODBC:$DSN") or die "$DBI::errstr\n";
My first question: in the $DSN string, where can I put the database
name? I found this syntax from the internet but it didn't say anything
about the database name location.
My second question: after I run the script, here is the error I got:
DBI connect('driver={Microsoft ODBC for
Oracle};server=10.1.6.9:1521;uid=oradbuser;pwd=oradbpassword;','',...)
failed: [Microsoft][ODBC driver for Oracle][Oracle]
ORA-12514: TNS:listener does not currently know of service requested in
connect descriptor (SQL-NA000) [state was NA000 now 01000]
[Microsoft][ODBC Driver Manager] The driver doesn't support the version
of ODBC behavior that the application requested (see SQLSetEnvAttr).
(SQL-01000) at testOracle.pl line 31
The database connection works ok because I can connect to the datasbase
using SQLPLUS that comes with Instance Client for Microsoft Windows 32.
Thanks a lot!
Ming
--
---//---
Time flies like the wind. Fruit flies like bananas.
--- Groucho Marx
Either write something worth reading or do something worth writing.
--- Benjamin Franklin
A meeting is an event at which the minutes are kept and the hours are lost