I have remove the oracle 11g (following How do I do a manual uninstall of Oracle?)
Then install the oracle 12
However, I'm getting a ORA-12560: TNS:protocol adapter error, when I'm using new oracle.
Its look like there are still some references to old oracle.
As per picture above, how do I delete oraclient11g_home1 in windows?
You are dealing with the ODBC admin here. It's not about deleting the driver, it's about redefining your DSN to use the new driver.
As for actually removing the driver, if you uninstalled oracle, then the only thing to be removed is two entries in the Windows registry. Unfortunately, I don't have access to a system with Windblows, so cannot give you the details. If you are not experienced in mucking about in the registry, you could just leave that in place, as it is not hurting anything.
Open your Registry editor and navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraClient11g_home1
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers\Oracle in OraClient11g_home1
Delete the keys/values. Then the ODBC driver is removed. However as mentioned by #EdStevens this may not solve your problem.
Related
i have some problem with the Oracle DB XE version 21c.
i use it on my laptop to follow a data lab course in my campus
at first usage i try at the campus computer and works normally. but when i download
and install on my laptop (ofc for practice and homework), i encountered some problems
like : username should use "c##" prefix (i avoid using _oracle_script=true
as others recommend)then i got problem when adding select permission to my account via system user,
like i wrote here : grant select on HR.EMPLOYEES to c##SI0x_xxx;
and cmd throws error ORA-00942: table or view does not exist but when i creating an account + schema on my campus's computer it's worked without throws any error.
i also try to drop and re-create the user using system account but nothing worked.
for detail i put the version used on this case.
my laptop uses Oracle's DB Express Edition version 21c (21.3.0.0.0)
the campus computer uses an Oracle's DB version 10 (sorry i forgot to write exact version).
at the end i assuming the 21c version not have "HR.EMPLOYEE" table, then i need some helpto find best version to practice.Thanks, and i'am have to say sorry if i did some mistakes and poor at english writing.
[UPDATE]
i ended to choose 10 or 11g later as my lecturer recommends.
when at version 21c i just getting more problem because this is the first time i use this program and also kinda busy to try it more.
also thanks to anyone who answer thisit's helpful to get some info to try it with newer version if needed.
Oracle 21cXE doesn't contain the HR schema, so you'll have to install it first. Because, grant you ran failed as that table (nor user) exists.
Have a look at Installation of the Sample Schemas document which contains more information.
Once you install HR, connect as HR (no need to use SYSTEM for that) and grant privileges to your newly created user.
Alternatively, why wouldn't you use HR schema directly? It is on your laptop, there's nothing you can spoil (and even if you did, just re-create it).
So I downloaded Oracle 19c DBMS. Then I downloaded Sql Developer. When I try to add a new connection, I get the message
How do I get past this. I have seen some other threads on this but none of the solutions that I understand seem to fix it. I need to keep the connection type as local. Is there somewhere I can go and just adjust this path?
EDIT
I used just a basic connection and the name database name in the service name box and it worked. The initial setup instructions I had were dated and not set up for 19c. One of the comments in the answer below suggested this.
For 20.4.1 and bequeath connection you must have a 21c instant client as we're using a 21c jdbc driver.
If you're not on Linux, that means you'll need version 20.4.0 so you can use a 19c Instant Client.
Windows 21c Clients should be available later this Summer.
Edit/Update: Version 21.2.1 now supports 19c and 21c Clients. 21c Instant Clients are rolling out across supported platforms. Currently avail for Linux, soon to include Windows and OS X.
In my case, the DB connection changed from Network Alias to Connect Identifier post a company pushed update, simple fix after hours /days of trouble shooting.
enter image description here
Ran into this error with Oracle SQL Developer and the fix for us was to in Oracle SQL Developer:
Tools -> Preferences
In the tree view on the left Expand Database and select Advanced
In Use Oracle Client click Configure...
Set the path to your Oracle home (should looks something like C:\Path\To\Oracle\19.n)
Check the Use Oracle Client box
In the Tnsnames Directory set it to the folder containing the tnsnames.ora file (should looks something like C:\Path\To\Oracle\19.n\network\admin)
Click OK
Relaunch Oracle SQL Developer
I get this error when I launch Toad for Oracle.
No valid Oracle clients found. You need at least one 64-bit client properly configured.
This has been happening since I upgraded the Oracle Client to Oracle 12c from 11g.
Here is what I have done so far to try to resolve it based on internet research:
I checked the path variable, it's currently set to C:\xyz\Oracle\ora12.1\client_2\bin, and there is an Oracle installation at this path.
I checked the TNS_ADMIN variable, it is currently set to C:\xyz\Oracle\ora12.1\client_2\network\admin. This also appears to be valid and correct, there is a tnsnames.ora file under this path.
SQL Plus works without issues, and Oracle SQL Developer also works without issues.
Is there anything else I can try to resolve this issue? Unfortunately, uninstalling and reinstalling Toad is not an option at this point as I do not have access to a new setup.
The issue is due to not having the Oracle Database installed on your computer.
You can download the database here: https://www.oracle.com/database/technologies/appdev/xe.html
Once the zip file is downloaded and extracted, run setup.exe. Once that is complete, the Oracle DB will be installed on your machine and the error will no longer appear.
With TOAD you need to have oracle client installed on your computer and you must configure the related TNSNAMES.ORA to connect to the server.
If you use SQLDeveloper you can do without oracle client installation.
I have installed Oracle Database 11.2.0.1 Win64 and also Client 11.2.0.1 Win64 in my windows 7 Ultimate and I was able to access Oracle database using Sql*plus
using sqlplus / as sysdba. After that I installed ODP.NET ODTwithODAC1120320_32bit to work with Oracle using C# in Visual Studio 2010. When i tried to add connection to Oracle database using ODP it pops out ora-12560 :TNS: protocol adapter error and even during logging to Oracle using SqlPlus / as sysdba.
I have read several articles that say stopped service will cause but mine is running.
What could be the problem???
The main problem that I faced Connecting to Oracle 11g using Server explorer in VS 2010 was not version compatibility of ODP with Oracle database but it's architecture. After such errors I uninstalled Oracle Database 11g using deinstall.bat file then cleaned Registry Key ../Software/Oracle and cleaned up temp files, did a system restart. Then installed Oracle 11g Database x32 Database server, ODP.NET x32, checked Env vars.
First success was that I was able to connect to DB using SQL*Plus. After that started VS 2010 and tried to connect ..... Connected! wow has worked in VS IDE. I was so happy :)
I remember how many times I reinstalled Oracle(cleaning,configuring checking listeners, restarting services). Then my hard work really paid off.
here is a screenshot
Generally, I advise to install Oracle server under different credentials than what you usually use. The Oracle server (under Windows) makes use of a few environment variables; and the same is the case with ODP.NET as well. And while you can't easily switch between different sets of env variables in your user profile, you can assign different env var values to a (different) user under which the Oracle server is installed and/or being run.
If you already have your Oracle server installed (which, I suspect, is your case), then try:
Create a new user in your Windows, make him sufficiently privileged. ("Admin" rights will do fine. :-))
Log in as the new user.
Set up ORACLE_HOME, ORACLE_SID, NLS_LANGUAGE and PATH environment variables for that particular user (not globally for the whole Windows!) to point to your Oracle server.
Log in as the original user.
Start the Services management console ("services.msc").
Change "Log On" credentials for the OracleServiceSOMETHING and Oracle SOMETHING VSS Writer Service and OracleJobSchedulerSOMETHING and OracleOraDb11g_home1TNSListener to that new user+password you just created. (... where SOMETHING is usually the name of your instance)
Stop all Oracle services.
Set up ORACLE_HOME and PATH env var to point to your ODP.NET root and root\bin folders respectively; set up the ORACLE_SID and NLS_LANGUAGE vars to whatever values you need.
Start all Oracle services. (After this moment they should be running under their own credentials.)
Let's pray that it works.
I myself would have to improvise, too, if this scenario didn't work. But so far I have successfully run two Oracle servers and one Oracle client on the same machine this way with no problems, so I hope it works for you too. If it does not, then there's still the option of reinstalling your Oracle server completely.
Don't forget about backing up your database ... just in case something horrible happens.
We are in the process of moving from the .NET Microsoft oracle driver to the ODP.NET driver.
One of the problems we have had is this error:
ORA-12705: Cannot access NLS data files or invalid environment specified
We were able to stop the error by modifying the registry and changing the setting (see this question)
In our case we changed
HKEY_LOCAL_MACHINE - SOFTWARE - ORACLE - NLS_LANG
which was set to NA
to be the same as
HKEY_LOCAL_MACHINE - SOFTWARE - ORACLE - HOME0 - NLS_LANG
which was set correctly
My question is why would there be different NLS_LANG settings in the registry, and might there be any knock on effects of changing this value?
Update:
I've just found in the Oracle NLS FAQ the following
For Oracle version 7:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
For Oracle Database versions 8, 8i and
9i:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx\
where "x" is the unique number
identifying the Oracle home.
HOME0 is the first installation
For Oracle Database 10g:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
There you have an entry with name
NLS_LANG
OK, so there are different registry settings for different versions...
Note:
Some people are confused by finding a
NLS_LANG set to "NA" in
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
when no version 7 was installed. This
is used for backwards compatibility,
and can be ignored.
I have Oracle 9i, so now I'm even more confused - why is the ODP.NET dll looking at the Oracle 7 registry setting?
I had a similar problem with the;
ORA-12705: Cannot access NLS data files or invalid environment specified
The ODP.NET dll's or instant client were reading the registry;
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG=NA
The value NA caused the error.
This was because I already had a client installation but I wanted to use the oracle instant client via network drive for the a VB.NET app with ODP.NET.
My simple fix in my vb.net solution was for example to adjust the environment for the application via:
Environment.SetEnvironmentVariable("NLS_LANG",
"AMERICAN_AMERICA.WE8MSWIN1252",
EnvironmentVariableTarget.Process)
nb. The Oracle "NLS FAQ" link is no longer valid (2012)
PER Oracle Notes on the 11g ODP release, the following can cause this error:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG=NA <--- This NA does in fact cause this error if set to NA.
You can try DELETING the key if not needed or setting it to a valid NLS_LANG setting for your locale.
For us we set it to AMERICAN_AMERICA.WE8MSWIN1252.
In our case we did not want to make any potentially breaking changes to the Oracle registry because we were installing our web service on a production Oracle 9i server.
The solution was simply to prevent ODAC from being able to see any ORACLE registry keys by denying all access to that key for the user ID our web service was running as.
Start -> Run... regedit (as an administrator)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Right click on the ORACLE key -> Permissions...
Click the Add... button.
Add the web service user name configured in your web service's application pool identity (e.g. IUSR_MyWebService); this is the user name that appears against your w3wp.exe process in Task Manager.
Press OK.
For the new user permissions, check "Deny" against the Full Control permission and press OK.
This worked just fine and as a bonus we have ensured that our application is isolated from any future changes to the ORACLE registry keys.
Tip: you can prove to yourself that the user in question has no access to the keys in question by closing any running instances of the Registry Editor, start a CMD prompt as that user (using Run As...) and then launching regedit from the command prompt.
the Oracle Client (ORACLE_HOME\bin\ora*.dll) is looking for a file named "oracle.key" in the same directory. This file contains the name of the registry key which belongs to this Oracle client installation. (e.g. "Software\ORACLE\HOME3")
hth
Andreas
This was all resolved in the end by installing the ODAC 11 client components (downloaded from the Oracle website). I think the system was getting confused because we had copied the ODAC dlls across rather than fully installing the client. ODP.NET is expecting an Oracle 11 client and didn't know where to find the Oracle Home.
NB if you are installing the ODAC components using xCopy deployment then do not install them to an existing Oracle Home directory (eg c:\oracle\ora92 for 9i client). This causes a 'Provider is not compatible with the version of Oracle Client’ error.