Hi ,
The issue seems to be caused by,
An old ORACLE_HOME had not been deinstalled/removed correctly and the following registry information still existed:
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryService]
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryServiceProtid_0]
«Name»=»HTTP»
«Host»=»hostname»
«Port»=»49155»
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryServiceSetup]
«NumberOfInstalls»=dword:00000001
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryServiceSetupAll Versions]
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryServiceSetupAll Versions1]
«Version»=»11.2.0.1.0»
«Home»=»SOFTWARE\ORACLE\KEY_OraDb11g_home2»
[HKEY_LOCAL_MACHINESOFTWAREORACLEOracleMTSRecoveryServiceSetupCurrent Version]
«Version»=»11.2.0.1.0»
«Home»=»SOFTWARE\ORACLE\KEY_OraDb11g_home2»
Please do the following,
1. Verify that:
the above registry keys exist in the Windows registry, and
they point to an old %ORACLE_HOME% which no longer exists on the server
If the registry keys do not exist or if they point to a valid %ORACLE_HOME% on the server, there is another cause for the error which needs to be investigated further. Do not perform step 2.
2. After verifying both of the above points, remove the above registry keys and perform the 11.2 installation again. The error should no longer occur.
Hope this fixes the issue
1. Оракул был установлен сегодня, и сообщалось об ошибке при открытии pl / sql. SQL * Net неправильно установлен OracleHomeKey: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ORACLE
PL/SQL Developer — (Not logged on)
—————————
Initialization error
SQL*Net not properly installed
OracleHomeKey: SOFTWAREORACLE
OracleHomeDir:
Возможно, причина в том, что структура установочного каталога Oracle10g изменилась, и вам необходимо перенастроить каталоги ORACLE_HOME и «OCI Library» в PLSQL Developer.
Шаги следующие:
В PLSQL Developer выберите Инструменты> Настройки> Параметры>, как показано ниже: «Oracle Home» и «Библиотека OCI», как показано на рисунке:
Oracle10g установлен в d: oracle Oracle Home is d: oracle product 10.1.0
Библиотека OCI является d: oracle product 10.1.0 Db_1 BIN oci.dll
Перезапустите PLSQL Developer после настройки, вход в систему успешен
Второй метод
Добавьте каталог, где oci.dll добавлен в путь в переменной окружения моего компьютера
Например, мой файл oci.dll находится в папке D: config instantclient_10_2
Тогда я добавлю в путь;D:configinstantclient_10_2
Это нормально, обратите внимание на точку с запятой
|
Kalinkin92 0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
||||
|
1 |
||||
|
06.08.2014, 10:12. Показов 73260. Ответов 18 Метки нет (Все метки)
Доброго времени суток. Знаю, что эта проблема уже не раз здесь обсуждалась.
Пожалуйста помогите!
__________________
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
06.08.2014, 11:41 |
2 |
|
Если работа идет через Forms (кстати какой версии?), то он использует своего клиента. Ты из какого ORACLE_HOME показываешь tnsnames.ora?
1 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
06.08.2014, 13:37 [ТС] |
3 |
|
Grossmeister, ORACLE_HOME значение= C:oraclexeapporacleproduct11.2.0server tnsnames.ora находится по адресу C:oraclexeapporacleproduct11.2.0servernetwo rkADMIN
0 |
|
6 / 6 / 1 Регистрация: 28.07.2014 Сообщений: 49 |
|
|
06.08.2014, 14:25 |
4 |
|
tnsping проходит?
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
06.08.2014, 16:03 |
5 |
|
ORACLE_HOME значение= C:oraclexeapporacleproduct11.2.0server Я не понял. Если на компе стоят и клиент, и сервер, то ORACLE_HOME д.б. минимум 2. Кстати, если HOST действительно с таким именем, то в некоторых версиях Oracle не нравились имена с тире.
0 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
06.08.2014, 17:31 [ТС] |
6 |
|
Grossmeister, Добавлено через 3 минуты Used TNSNAMES adapter to resolve the alias
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
07.08.2014, 09:41 |
7 |
|
Проблема может быть в том, что имя компьютера на русском? Это легко проверить. Можно вместо имени хоста писать ip
0 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
08.08.2014, 10:32 [ТС] |
8 |
|
Какой IP адрес указывать если сервер и клиент на одной машине?
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
08.08.2014, 10:48 |
9 |
|
Какой IP адрес указывать если сервер и клиент на одной машине? Локальный ip завсегда был 127.0.0.1 Кстати, что означает твоя фраза, что клиент и сервер на одной машине? Если имеется ввиду Oracle Client, то он обязательно ставится в свой ORACLE_HOME, а из твоих слов у тебя на компе только 1 ORACLE_HOME
0 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
10.08.2014, 21:22 [ТС] |
10 |
|
Grossmeister, Да всё верно, ORACLE_HOME только одна запись в реестре. Значит у меня не создан клиент? Из-за этого не удаётся подключиться к бд через oracle forms? Добавлено через 2 часа 3 минуты
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
11.08.2014, 10:07 |
11 |
|
ORA — 00604:error occured at recursive SQL level 1 Обычно такая ошибка появляется в случае, когда неправильно прописан PATH. Посмотри, что там у тебя, заодно увидишь, есть там пути к 1, или к 2 ORACLE_HOME (что-нибудь типа …ora…bin)
1 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
11.08.2014, 10:38 [ТС] |
12 |
|
Grossmeister, >SELECT USERENV (‘language’) FROM DUAL
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
11.08.2014, 10:50 |
13 |
|
PATH — это переменная окружения (environment var) Win. Просмотр — Мой компьютер — прав. кн. мыши — Свойства — Дополнительно. Или дать команду set в командной строке.
1 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
11.08.2014, 11:01 [ТС] |
14 |
|
Path=C:oraclexeapporacleproduct11.2.0server bin;; <- здесь указано 2 символа ‘;’
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
11.08.2014, 12:23 |
15 |
|
Не работал с Forms 10 (только с Forms 6), но предполагаю, что это — C:DevSuiteHome_1bin — ORACLE_HOME для Forms. На текущий момент первым в PATH стоит путь к серверному ORACLE_HOME, с которым, возможно, Forms работать не может. Поэтому перед запуском Forms нужно менять ORACLE_HOME (для смены обычно используется Home Selector в OUI — Oracle Universal Installer). Правда не знаю, как в этом случае поведет себя запущенный сервер (встречал на некоторых версиях, что сервер при смене ORACLE_HOME падал).
0 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
11.08.2014, 13:12 [ТС] |
16 |
|
Grossmeister,
0 |
|
Модератор 4186 / 3026 / 576 Регистрация: 21.01.2011 Сообщений: 13,096 |
|
|
11.08.2014, 13:24 |
17 |
|
На какую директорию он должен указывать чтобы формы подключались? Если мое предположение верно, то C:DevSuiteHome_1
0 |
|
0 / 0 / 0 Регистрация: 05.08.2014 Сообщений: 9 |
|
|
11.08.2014, 16:52 [ТС] |
18 |
|
Grossmeister, Добавлено через 2 часа 53 минуты
0 |
|
0 / 0 / 0 Регистрация: 15.02.2011 Сообщений: 9 |
|
|
23.01.2019, 11:45 |
19 |
|
ГУГЛ поиск сосрана ERROR ORA 12154 TNS ORACLE_HOME правильный путь где библиотека отвечает OCI.DLL oraclient11.dll ORACORE11.DLL вот и приложите правильный путь — ЖИРНАЯ это версия клиента ОРАКЛА 11 NLS_LANG = AMERICAN_AMERICA.CL8MSWIN1251 — это в REGEDIT TNSNAMES
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
23.01.2019, 11:45 |
|
Помогаю со студенческими работами здесь ORA-12154 ORA-12154! Sqlplus из shell. ORA-12154 Немогу запустить sqlplus из скрипта. Если нужных значений в переменных $ORACLE_HOME,… Forms Builder, ORA-12154 — Установилa Oracle Database… Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 19 |
First published on MSDN on Jun 30, 2010
This is one of the most common errors while creating linked server to Oracle database. Today I will discuss the reason for this error and possible resolutions.
Full error message:
OLE DB provider «MSDAORA» for linked server «LINKED_ORA» returned message «ORA-12154: TNS:could not resolve the connect identifier specified».
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider «MSDAORA» for linked server «LINKED_ORA».
First of all make sure you have reviewed the following Microsoft KB article that has a lot of good information on troubleshooting Oracle linked server issues.
How to set up and troubleshoot a linked server to an Oracle database in SQL Server
http://support.microsoft.com/kb/280106
Also make sure you have installed Oracle Client on the SQL server. If the SQL server is 64 bit then we need to install 64 bit Oracle provider. You can also create linked server using Oracle ODBC driver together with Microsoft OLE DB provider for ODBC. Once again on a 64 bit SQL server you need to install the
64-Bit OLEDB Provider for ODBC (MSDASQL)
and 64 bit Oracle ODBC drivers. However 64-Bit OLEDB Provider for ODBC (MSDASQL) is already there in Windows Vista/Windows Server 2008 and later OS.
This particular error message is a very general error message and can happen for quite a number of reasons. For general understanding of the error, you can review oracle documentation like this
http://ora-12154.ora-code.com/
In SQL Server Linked Server, it could indicate a few things (not limited to)–
1. SQL Server (and oracle net libraries) is not able to get the TNS alias from tnsnames.ora file.
2. Something is wrong with the way the alias is created in the tnsnames.ora file (incorrect syntax)
3. TNS alias could not be resolved into a connect descriptor
Below is a list of things that you can try to resolve this issue.
1. Verify that the tnsnames.ora file has the alias and the service name that the customer is using.
TNS entry for the Oracle database
===========================
OracleDB_Dev =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server01.mydomain.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = OracleDB)
(SERVER = DEDICATED)
)
)
In the above tnsnames.ora file Alias = OracleDB_Dev
Service Name: OracleDB (Actual Oracle service name [instance name in SQL])
2. Check the sqlnet.ora file under ‘Admin’ folder in Oracle home [Dir:appproduct11.1.0client_1networkadmin] and ensure that we have TNSNames in NAMES.DIRECTORY_PATH
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
3. Verify if you can connect to Oracle from the SQL server machine using tools installed with Oracle Client [For example «SQL Developer» or “SQL Plus”] with the same user id/password or TNS alias.
5. Check if the environment variable ‘PATH’ has the path for tnsnames.ora file specified.
Sample Value of Environment Variable PATH:
E:appproduct11.1.0client_1bin
;C:Program FilesBusiness ObjectsCommon3.5binNOTES;C:Program FilesBusiness ObjectsCommon3.5binNOTESDATA;%Systemroot%Microsoft.NETFrameworkv1.1.4322;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:Program FilesDellSysMgtomabin;C:Program FilesMicrosoft SQL Server80ToolsBINN;C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATEADMIN1033;C:Program FilesMicrosoft SQL Server80ToolsBinn;C:Program FilesMicrosoft SQL Server90DTSBinn;C:Program FilesMicrosoft SQL Server90Toolsbinn;C:Program FilesMicrosoft SQL Server90ToolsBinnVSShellCommon7IDE;C:Program FilesMicrosoft Visual Studio 8Common7IDEPrivateAssemblies;C:Program FilesMicrosoft Network Monitor 3
Note: make sure that the path is a valid path and there is no space.
6. Check the value of the key ”Oracle_Home” in the registry under HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient11g_home1 and verify that it has the right path for the Oracle home.
7. Check for the registry key “TNS_ADMIN” at HKEY_LOCAL_MACHINESOFTWAREORACLE. If it exists then make sure it has the right value as “Dir:appproduct11.1.0client_1networkadmin”. If you don’t see the key then create the key and set appropriate value as below.
Regedit->HKEY_LOCAL_MACHINE->Software->Oracle->RightClick NEW->StringValue and name
it TNS_ADMIN and give the value “X:appproduct11.1.0client_1networkadmin”
Note: This is not a must but in some cases this is what fixed the issue.
8. Check if SQL server start up account has permission to the Oracle Home. Also collect Process monitor log and check for “access denied”. Process monitor log should show if we are able to find the tnsnames.ora file.
9. Make sure you don’t have multiple Oracle homes or multiple Oracle clients installed. Check the «HKEY_LOCAL_MACHINESOFTWAREORACLEALL_HOMESHOME_COUNTER» key value.
10. Check if Oracle OLE DB provider is running InProcess. If ‘yes’ then try to run out-of- process and see if that resolves the issue.
Note: You can check and verify if MS OLE DB Provider for Oracle is running InProcess from the registry key at HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerProvidersMSDAORA
11. You can try collecting simultaneous Network trace from both SQL and Oracle servers and check if there are any communications between the two servers.
12. Try to connect to Oracle from the SQL server using the UDL. Use the same TNS name. If you get the same error that means the issue is not specific to SSMS or linked server.
Creating and Configuring Universal Data Link (.udl) Files
http://msdn.microsoft.com/en-us/library/e38h511e(VS.71).aspx
13. Try to specify all the information in the data source instead of using the TNS alias to connect to the Oracle database (this is a way to bypass tnsnames.ora file when connecting to Oracle).
Sample Data Source:
Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= server01.mydomain.com)(PORT=1521)))(CONNECT_DATA=(SID=OracleDB)(SERVER=DEDICATED)));
Author : Mohammad(MSFT) SQL Developer Engineer, Microsoft
Reviewed by : Azim(MSFT), SQL Developer Technical Lead , Microsoft
When creating a new Oracle data source, I’m receiving the following message:
Unable to connect: We encountered an error while trying to connect to . Details: «We could not register this data source for any gateway instances within this cluster. Please find more details below about specific errors for each gateway instance.»Hide details
| Activity ID: | 5d862ea5-3a96-0835-6db7-8f7f459bf828 |
| Request ID: | 0ad21c9b-99f9-419b-2dda-37a8d184731e |
| Cluster URI: | https://wabi-us-east2-redirect.analysis.windows.net |
| Status code: | 400 |
| Error Code: | DMTS_PublishDatasourceToClusterErrorCode |
| Time: | Wed Sep 12 2018 09:58:40 GMT-0400 (Eastern Daylight Time) |
| Version: | 13.0.6617.130 |
| Cannot connect to the mashup data source. See error details for more information. | |
| Underlying error code: | -2147467259 |
| Underlying error message: | Oracle: ORA-12154: TNS:could not resolve the connect identifier specified |
| DM_ErrorDetailNameCode_UnderlyingHResult: | -2147467259 |
| Microsoft.Data.Mashup.ValueError.DataSourceKind: | Oracle |
| Microsoft.Data.Mashup.ValueError.DataSourcePath: | |
| Microsoft.Data.Mashup.ValueError.ErrorCode: | -2146232008 |
| Microsoft.Data.Mashup.ValueError.Message: | ORA-12154: TNS:could not resolve the connect identifier specified |
| Microsoft.Data.Mashup.ValueError.Reason: | DataSource.Error |
I have the following already configured:
1) Oracle 12.1 64-bit client is installed.
2) ORACLE_HOME and TNS_ADMIN locations are setup in PATH environment variable.
3) TNS_ADMIN evironment variable is added as an environment variable.
4) Entry in tnsnames.ora file, i.e.) net_service_name in tns entry is being used as ‘Server’ value for data source.
5) NAMES_DIRECTORY_PATH=(TNSNAMES, EZCONNECT) in sqlnet.ora file.
6) The value of the key «Oracle_home» in the registry under HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient12Home1 is set to the correct path.
7) The registry key for «TNS_ADMIN» is correctly set.
There are not multiple Oracle homes.
There were already 2 Oracle data sources that previously worked. Now, unsure why, they no longer work and the new data source creation is failing when attempted to add an Oracle database.
Thanks in advance for your help!
Frank

