Мне нужно разрабатывать в PL SQL с использованием разработчика PL/SQL, но я не знаю, как заставить разработчика oracle 11g и pl/sql работать на одной машине, потому что разработчику pl/sql нужен 32-битный клиент oracle, установленный, когда oracle не требуется клиент, когда мы работаем на локальной машине. Вот что я сделал:
1) Я установил 64-разрядную версию oracle 11g Enterprise на диск d:\ 2) Затем я установил 32-разрядную версию клиента oracle на диск c: (разработчик pl/sql может работать только с 32-разрядной версией oci.dll) 3) После того, как я перешел к папку client_home%->Network->Admin и поправил файл tnsname.ora и написал туда свою настройку подключения, которая была скопирована из моего оракула 11 g home_dir..tnsnames.ora
MyOracle =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
После того, как я установил разработчика PL/SQL в c:\plsqldev\ и перезагрузил свою машину.
Итак, теперь я могу подключиться к своей базе данных с помощью sql * plus, расположенного в моем каталоге базы данных оракула, но когда я пытаюсь подключиться к своему оракулу с помощью моего клиента sql * plus, он говорит об ошибке протокола tns, когда я пытаюсь подключиться с помощью разработчика pl / sql. говорит, что не удалось разрешить указанный идентификатор соединения. Что я должен делать? Не могли бы вы мне помочь, пожалуйста
Добавлено: я удалил параметр TNSNAMES из NAMES.DIRECTORY_PATH (как в серверных, так и в клиентских файлах sqlnet.ora), и теперь, когда я вхожу в систему, он говорит: ora-12154 tns не может разрешить указанный идентификатор подключения, но он все еще успешно подключается к БД, когда я пытаюсь подключиться к СЕРВЕРУ - s sql*plus.
Вот мои файлы конфигурации:
**servers listener.ora **
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Light\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Light\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\app\Light
серверы sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NONE)
NAMES.DIRECTORY_PATH= (HOSTNAME)
серверы tnsname.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Клиенты sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NONE)
NAMES.DIRECTORY_PATH= (HOSTNAME)
Клиенты tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ДОБАВИТЬ: Да!)) Наконец-то я нашел решение: :) Нам нужно использовать конфигурационный файл сервера, а не клиента, но oci.dll(32bit) должен быть взят из каталога клиентов. Я опишу основные шаги - как я заставил pl/sql developer 10.0.2 работать с локально установленным Oracle 11.2 x64:
1) Сначала нам нужно установить Oracle (я установил его в d:\app)
2) Затем нам нужно загрузить и установить мгновенный клиент oracle (я обнаружил, что в мгновенном клиенте нет никаких файлов конфигурации (даже каталога network->admin), нужны только dll, такие как oci.dll и т.д.. примечание: в первый раз я выбрал "администратора", который имеет свой собственный файл конфигурации внутри, похоже, такой тип клиента нужен только для удаленного доступа к Oracle). Я установил (распаковал) свой мгновенный клиент в c:\app\ ;
3) Откройте разработчик PL/SQL, перейдите в меню «Инструменты» -> «Настройки» -> «Подключение» и установите «Oracle Home» в домашний каталог вашего мгновенного клиента (я указал c: \ app), но обычно он уже существует в папке. вниз, и нам просто нужно щелкнуть раскрывающийся список и выбрать OraClient11g_home1_32bit, таким образом я устанавливаю путь к библиотеке oci (выбирается из раскрывающегося списка). Нажмите «Применить» и выйдите из разработчика pl/sql;
4) Теперь нам нужно создать две переменные окружения(первая укажет путь к папке с конфигами подключения, вторая язык(если не прав поправьте)) ->
TNS_ADMIN = %SERVER_HOME%\NETWORK\ADMIN\ (я указал D:\app\Light\product\11.2.0\dbhome_1\NETWORK\ADMIN)
TNS_LANG = АМЕРИКАНСКИЙ_СНГ.CL8MSWIN1251
5) Перезагружаемся (опционально) и запускаем pl/sql developer - должно быть три алиаса подключения, я выбрал orcl, ввел логин, пароль и нажал ОК и все заработало )));
Спасибо всем ответившим в этой теме, надеюсь кому-нибудь поможет
sqlnet.ora
, расположенный в том же каталоге, что иtnsnames.ora
: установитеSQLNET.AUTHENTICATION_SERVICES = (NONE)
иNAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)
- person ThinkJet   schedule 11.09.2013TNSNAMES
из списка:NAMES.DIRECTORY_PATH= (HOSTNAME)
. Если это предложение не помогает, вам необходимо предоставить дополнительную информацию о вашей конфигурации (добавьте текст всех файлов конфигурации, описанных выше, плюсlistener.ora
к тексту вопроса). P.S. Также проверьте форматирование текста вопроса. - person ThinkJet   schedule 11.09.2013127.0.0.1
вместоlocalhost
. Также просмотрите связанные вопросы в StackOverflow. - person ThinkJet   schedule 11.09.2013