Oracle База данных не может подключиться в C# с ошибкой ORA-12514 - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь подключить базу данных Oracle к моему проекту C#, но получаю следующую ошибку:

ORA-12514 TNS: прослушиватель в настоящее время не знает о запрошенной услуге в дескрипторе подключения

Снимок экрана:

enter image description here

Я тестировал с теми же значениями в Sql Developer, и это было успешно :

enter image description here

Единственная разница в том, что я использую SID вместо имени службы, поэтому я попытался создать две разные строки подключения, чтобы проверить его с помощью SID и без него, и по-прежнему не мог подключиться:

string dt = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IP>)(PORT = 1521))(CONNECT_DATA = (SID = DB2DEV))); User Id = OMP; Password = <PW>; ";

OracleConnection conn = new OracleConnection(dt1);             

if (conn.State != ConnectionState.Open)
{
  labelteste.Text = "Not Opened";
}
else
{
  labelteste.Text = "Open";               
}

Я использовал указанное выше условие if, чтобы проверить, было ли соединение открыто, и оно всегда возвращало Not Opened.

Кто-нибудь знает, почему это происходит?

1 Ответ

0 голосов
/ 26 мая 2020

SID и SERVICE_NAME совершенно разные. На сервере БД используйте команду «lsnrctl status» или «lsnrctl services», чтобы получить список всех зарегистрированных имен сервисов для базы данных, затем используйте одно из них в строке подключения.

...