ODP.NET doesn't work System.Data.OracleClient does - oracle

We are switching from the obsolete System.Data.OracleClient. I have switched all the references in the ASP.NET 2.0 code, however when I try to access the database server using ODP.NET calls I get ORA-12154: TNS:could not resolve the connect identifier specified. This works when I use System.Data.OracleClient on the same machine. Any suggestions about what is going wrong here?

You can avoid a dependency on Tnsnames.ora altogether, and go for the "independent" connection string in format:
Data Source =(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))); User Id =myUsername; Password =myPassword;
BTW, you can look at connectionstrings.com/oracle for a quick, in-your-face list of supported connection string formats.

It sounds like your client install doesn't have your TNS names setup correctly. If you just installed ODP.NET on this machine, you probably just installed another Oracle client, and have yet to configure it.

Copy the TNSNAMES.ORA from the /NETWORK/ADMIN directory in the Oracle home where the OracleClient was installed and copy over to the new /NETWORK/ADMIN directory where ODP.NET is installed.
http://www.oracle.com/technetwork/topics/dotnet/odt-faq-085407.html#ORA-12154:_TNS:could_not_resolve_the
Christian Shay
Oracle

Related

Cant create local connections in SQL Developer [duplicate]

I am new to Programming. I am learning JAVA and for DB i wanted to learn Oracle so I downloaded sqldeveloper from Oracle website. It was a zip file so I didnot have to install anything, simply extracted it. When I open the sqldeveloper and try to make a new connection, it shows error.
Test failed: IO Error: The network adapter could not establish the connection.
I am not sure what to put in username and pwd. and i am also not sure if i have to connect this to jdk or jre or set classpath for database.
Can anyone help me?? I have uploaded the snapshot of the error too.
You downloaded a client.
You did NOT download the server component though - the actual database.
SQL Developer just allows you to work with an existing database.
No worries, you're not that far away. You have several options.
Oracle Database Express Edition (XE) - it's completely free.
We also have a VirtualBox appliance you can use for personal learning purposes, also completely free.
I talk about this and give step by step instructions here.
Check if oracle service, TNSListener service is up and running before trying to make any new connection from sql developer.
Even if TNS Service is down , connection can not be established with oracle instance.

Oracle SQL Developer - Issue with JDBC Driver

I've:
Windows 7 x64
My 11G Oracle client as per below
C:\Oracle\product\11.2.0\client_1
My SQL Developer (downloaded the kit with JDK 8 included, but installed the JSK separately just in case) dir as per below
C:\sqldeveloper
When I try to connect using TNS I have
no ocijdbc12 in java.library.path
If I go to Settings -> Database -> Advanced and choose my Oracle dir manually I get this:
Testing the Oracle Home located at C:\Oracle\product\11.2.0\client_1
Testing client directory ... OK Testing loading Oracle JDBC driver ...
OK Testing checking Oracle JDBC driver version ... Failed: Minimum
driver version 11.2.0.3 required, specified driver version is
11.2.0.1.0
So I looked into upgrading the JDBC driver, but I can't use the check for updates feature, since it appears to be blocked in my virtual machine.
I got the ojdbc7.jar from the SQL developer directory and copied it to C:\Oracle\product\11.2.0\client_1\jdbc\lib, and now I get the error below:
Testing the Oracle Home located at C:\Oracle\product\11.2.0\client_1
Testing client directory ... OK Testing loading Oracle JDBC driver ...
OK Testing checking Oracle JDBC driver version ... OK Driver
version: 12.1.0.2.0 Testing testing native OCI library load ...
Failed: Error loading the native OCI library The native OCI driver
could not be loaded. The system propertyjava.library.path contains the
entries from the environment variable PATH. Check it to verify that
the expected native library directory
C:\Oracle\product\11.2.0\client_1\bin is present and precedes any
other client installations. java.library.path =
C:\sqldeveloper\jdk\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Oracle\product\10.2.0\client_1\bin;C:\Oracle\product\11.2.0\client_1\bin;C:\Oracle\product\11.2.0\client_2;C:\Oracle\product\11.2.0\client_2\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ARQDISP\;C:\Program
;.
Have no idea what I'm doing at this point. Could you please help?
Its missing drivers. So in my case I installed Oracle Client from http://www.oracle.com/technetwork/topics/winx64soft-089540.html
and set the path variable accordingly.
Here's a blog post that shows how to tell SQL Developer where and which installed client to use :
https://www.thatjeffsmith.com/archive/2014/01/oracle-sql-developer-4-and-the-oracle-client/
Restart your SQL Developer.
I had similar issue. Moving from sqldeveloper 4.0 to 4.1, imported all my connections, but in 4.1, I would get 'no ocijdbc12 in java.library.path'.
I opened up my current connections (right-click on any connection and choose properties) all of which the connection Type is TNS. The 'Connect Identifier' was checked with the connections network alias name entered there. I checked on the 'Network Alias' check box and selected the same name and then the connection worked.
I went back to 4.0 to examine my connections there and it appears that the alias name works fine with the 'Connect Identifier' selected but not in 4.1
I had to update all my many connections to use 'Network Alias'.
Error loading the native OCI libraryThe native OCI driver could not be loaded and when trying to connect to a database i was getting no ocijdbc12 in java.library.path
For me the error was solved after i have created a new variable ORACLE_HOME with the value ....(path of the folder where the sql developer was insataled)\jdk\jre. Then i have added at the begging of the Path variable %ORACLE_HOME%\bin.
At first i have created a system variable that was pointing to the folder of the installation of the dev express and that was not working
For database selecting the connection properties and changing the connection type from TNS to Basic and providing the other details (Service name/SID) for the connection resolved the issue for me
Maybe it helps having a look into answer of my post about similar topic:
How to get Sqldeveloper 19.1 64-bit working with instantclient_12_2 on Windows enterprise PC without admin privileges?
The mentioned .bat file shows all you need.
If you have admin privileges or permissions to change any environment variables, then it will probably be the better way without using .bat file.
When I try to connect using TNS I have
no ocijdbc12 in java.library.path
It is so stupid and funny, at the same time, what I found.
I get the same error and the only difference between when it is OK and when is not is...
the TNS definition in tnsnames.ora
Simply add (maybe once again if it disappeared) the TNS definition of your database, like:
XE.WORLD=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=localhost)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=XE.WORLD)
(SERVER = DEDICATED)
)
)
and restart SQL Developer.
Connection configuration will keep the name (XE.WORLD) even if it is already gone from tnsnames.ora. If it is not there, on the connection attempt, it will return that misleading error.
My setup: SQL Developer 4.1.4.21, ojdbc8.jar, connection to Oracle 19c.

Cannot create a new connection is sqldeveloepr

I am new to Programming. I am learning JAVA and for DB i wanted to learn Oracle so I downloaded sqldeveloper from Oracle website. It was a zip file so I didnot have to install anything, simply extracted it. When I open the sqldeveloper and try to make a new connection, it shows error.
Test failed: IO Error: The network adapter could not establish the connection.
I am not sure what to put in username and pwd. and i am also not sure if i have to connect this to jdk or jre or set classpath for database.
Can anyone help me?? I have uploaded the snapshot of the error too.
You downloaded a client.
You did NOT download the server component though - the actual database.
SQL Developer just allows you to work with an existing database.
No worries, you're not that far away. You have several options.
Oracle Database Express Edition (XE) - it's completely free.
We also have a VirtualBox appliance you can use for personal learning purposes, also completely free.
I talk about this and give step by step instructions here.
Check if oracle service, TNSListener service is up and running before trying to make any new connection from sql developer.
Even if TNS Service is down , connection can not be established with oracle instance.

How do I connect to Oracle with SSIS? I am getting the error: "tns listener was not given the service_name in connect_data"

I am trying to connect to an Oracle DB through the Oracle Provider for OLE DB in SSIS, but am getting the following error when testing the connection: "tns listener was not given the service_name in connect_data". I am not too familiar with Oracle, so could someone provide me some direction for how to fix this error?
You can add the service name after the host name with a forward slash between them. This has worked in both the Microsoft and Oracle OLE DB providers.
IP/Service_Name also works, "12.12.123.123/Server1.domain.com"
First of all, always use Oracle driver. Not the Microsoft one.
Then, when connecting, supply the TNSNAME, USERNAME and PASSWORD to a OLEDB Connection.
That's all!
Ok ok, been here, and this is what works:
You need oracle data access components http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
Download the one that applies to you (11g, 12c...)
It installs an OLE DB provider which is FAST and also .NET connectors (wich also work really well), so I recommend using OLEDB (also, attunity connector works wonders aswell after you installed ODAC).
Then just connect using ip/service name + credentials, for example
Image
You need to type "Servername/ServiceName" to Server Name Field .

ORACLE Data Provider for .net OREA -12154

I am using Oracle data provider for .net to try to connect to the oracle DB, to add a ADO entity data framework model file, but i am getting the error below.
ORA-12154: TNS could not resolve the connect identifier specified
when I try to tnsping the data source name that i provide in the VS dialog i can successfully resolve it to the correct ip and host names. But for some reason the Oracle Data provider doesn't seem to be reading it from from my C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
any ideas ?
i am using vs 2010 with the 32 bit oracle data provider from http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
i can use the same TNS names on different sql client like sqlDbx it works smoothly on the same machine.
If you set a system environment variable TNS_ADMIN to the location of your tnsnames.ora file, does that help?

Resources