Как подключиться к серверу Oracle без указания имени базы данных

Мое приложение имеет функцию для подключения к 4 различным серверам баз данных (MS SQL, MySql, SQLite и Oracle), и если база данных не существует, она создаст новую с указанным именем базы данных. Эта логика работает на всех серверах, кроме Oracle. Если база данных существует, я могу подключиться к ней на всех четырех серверах, так что я думаю, что проблема не связана с моим tns, неправильным dll или чем-то подобным, но, возможно, моя строка подключения неверна в этом случае.

Версия сервера Oracle - 11.0.0.1, и я установил необходимые драйверы odac. На моем компьютере установлен tns, и все работает правильно, когда база данных существует. В этом случае строка подключения выглядит так:

User Id=<myuser>; Password=<mypassword>; POOLING=true; Connection Lifetime=15;
Connection Timeout=15; incr pool size=10; Data Source=
(
DESCRIPTION=
(ADDRESS=
 (PROTOCOL=TCP)
 (HOST=<myserveraddress>)
 (PORT=<myport>)
)
(
 CONNECT_DATA=
 (SID=<mysid>)
 (SERVICE_NAME=<mydatabasename>)
)
);

Теперь, если я удаляю секцию servicename из строки подключения, я получаю сообщение "ORA-12505: TNS: слушатель в настоящее время не знает об SID, указанном в дескрипторе соединения".

Что мне делать, если я хочу подключиться только к серверу, но не напрямую к базе данных?

2 ответа

Вы неправильно понимаете, что здесь происходит.

В Oracle вы не создаете базу данных в вашем случае, но пользователь / табличное пространство.

Oracle:

Сервер> экземпляр (база данных) > табличное пространство

Другой:

Сервер> экземпляр> база данных

Концепция создания базы данных Oracle отличается от других баз данных.

Пожалуйста, нажмите на следующую ссылку

http://docs.oracle.com/cd/E16655_01/index.htm

и выберите опцию "2-дневный DBA"

лучший способ создать базу данных - использовать графический интерфейс, предоставляемый oracle, т.е. начать с dbca.bat.

Другие вопросы по тегам