Toad не видит oracle client
Я могу успешно подключиться к Oracle через собственные драйверы, но не могу заставить работать ODBC-соединение. Клиентское программное обеспечение Oracle 11g установлено на моем 64-разрядном компьютере с Windows 7, а также 32-разрядные драйверы ODBC, загруженные с Мгновенные загрузки клиента для 32-разрядной версии Microsoft Windows.
Позвольте мне сначала описать успешные связи:
TNSNames.ORA содержит данные для установки Oracle 10:
Я установил свой TFDConnection с помощью
В качестве альтернативы я могу обойти TNSNAMES.ORA , указав напрямую:
(Как видите, это еще один сервер Oracle, которого нет в TNSNAMES.ORA )
Теперь о неудачных попытках через ODBC
Установлены два 32-битных драйвера Oracle ODBC:
- Microsoft ODBC для Oracle версии 6.01.7601.19135 - я думаю, что это было с ОС Win7
- Oracle в Instantclient_11_2 версии 11.02.00.04 - я установил это вручную из источника, упомянутого вверху (работает от имени администратора, как предлагается в Примечания к выпуску ODBC для Oracle Instant Client).
Я установил два системных DSN с помощью этих драйверов, но ни один из них не работает.
Драйвер ODBC версии 6, присвоив ему имя записи TNSNAMES.ORA для 'Server':
И драйвер Oracle версии 11 idem:
Для этого второго я добавил еще одну запись в TNSNAMES.ORA , поскольку в этом диалоговом окне явно предлагалось просмотреть этот файл:
Я установил свой TFDConnection с помощью
И этот код, и кнопка тестирования в 32-разрядном администраторе ODBC завершаются с ошибкой:
В этой папке установлено мое клиентское программное обеспечение Oracle, она содержит SQORA32.DLL (и другие) и находится в моем системном пути.
Я безуспешно пробовал всевозможные варианты, включая / исключая доменное имя, имя базы данных и т. Д.
Как мне правильно настроить ODBC-соединение для подключения к Oracle, которое будет использоваться в 32-битном приложении Delphi-Tokyo через FireDAC?
Что тоже не помогло:
- Переустановка 32-разрядного распространяемого пакета Visual Studio 2013
- Скопируйте sqora32.dll в папку Windows SysWOW64
- Установка переменной среды ORACLE_HOME в d: \ app \ jan \ product \ 11.2.0 \ client_1 \
- Установка переменной среды TNS_ADMIN на d: \ app \ jan \ product \ 11.2.0 \ client_1 \
- Переименование sqora32.dll в SQORA32.dll
- Заменен c: \ windows \ syswow64 \ mfc42.dll от 11 марта 2011 г. на более новый из домашней папки Oracle от 27 апреля 2011 г.
Best Answer
Go to the server where database is installed. Check if you have listener installed or not on the server?
Go to the server
go to command prompt
lsnrctl status
post the output
3 ответа
Исходя из ваших путей, у вас есть два установленных клиента, как вы подозреваете (Toad и dbforge - это инструменты, а не клиенты, поэтому ваша терминология немного неправильная). Один 32-битный, другой 64-битный. Судя по пути установки, Toad 32-битный, но запустите его и перейдите в Help | Support Bundle. Вы увидите, что верхний заголовок будет «ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ (32-разрядная версия)» или «ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ (64-разрядная версия)» для подтверждения. Toad 11.6 был первым, кто представил 64-битную версию.
Жаба будет видеть только клиента Oracle для той же платформы, что и он. Так что ваш 64-битный клиент не имеет значения для Toad. C: \ Windows \ TNS, похоже, является папкой, используемой для папки TNS_ADMIN, учитывая ее странное расположение и тот факт, что Toad ее видит. В командной строке выполните SET TNS_ADMIN и посмотрите, сообщает ли он «TNS_ADMIN = C: \ Windows \ TNS». Если это так, то все инструменты должны использовать этот tnsnames.ora. Если хотите, это глобальное переопределение, указывающее на папку, содержащую ваши файлы сетевой конфигурации. Если у вас нет TNS_ADMIN в качестве переменной среды, найдите ее в корневом реестре Oracle: HKEY_LOCAL_MACHINE \ Software \ Oracle.
Если вы используете общий набор подключений для всех своих инструментов, я бы удалил все ваши файлы tnsnames.ora. Я бы также переместил эту папку C: \ Windows \ TNS в более подходящее место, например C: \ Oracle \ Admin, и создал там ваши tnsnames.ora, sqlnet.ora и ldap.ora (если применимо). Создайте переменную среды TNS_ADMIN, указывающую на это местоположение.
Согласно Oracle эти местоположения ищутся для tnsnames.ora , соответственно. sqlnet.ora и ldap.ora :
- Файлы Oracle Net в текущем рабочем каталоге (PWD / CWD)
- TNS_ADMIN определяется сессионно или пользовательским скриптом
- TNS_ADMIN определен как глобальная переменная среды
- TNS_ADMIN определено в реестре
- Файлы Oracle Net в %ORACLE_HOME/network|net80\admin (расположение Oracle по умолчанию)
Однако я не уверен, следует ли этому списку каждое приложение / драйвер. Я получил этот список из документа 111942.1, относящегося к Oracle 9i, поэтому это могло быть устаревшим.
- TNS_ADMIN определяется переменной среды
- TNS_ADMIN определено в реестре (если переменная среды TNS_ADMIN не указана)
- Каталог %ORACLE_HOME%/network/admin (если переменная среды TNS_ADMIN не указана)
Я бы рекомендовал определить переменную среды для TNS_ADMIN и использовать только один файл tnsnames.ora. Чтобы быть в безопасности, проверьте также значения реестра.
Если ваши файлы не находятся в %ORACLE_HOME%\network\admin , я рекомендую создать для него символическую ссылку - на всякий случай очень , например mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
Еще одно замечание: вам не нужно «играть» с файлом tnsnames.ora. С помощью Process Monitor от Microsoft Sysinternals вы можете отслеживать доступ к каждому файлу, т. Е. Фильтр будет Path contains tnsnames
Обновить
Когда я запускаю тест на своей машине, я получаю следующий порядок:
- Переменная среды TNS_ADMIN
- Ключ реестра HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_\TNS_ADMIN
Ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_\TNS_ADMIN , соотв. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_\TNS_ADMIN
-> Только если TNS_ADMIN переменная среды не установлена.
Обновление 2
Очевидно, что поиск исправлений отсутствует, он различается для разных провайдеров / драйверов. Может, это тоже зависит от версии Oracle.
В официальной документации (12c Release 4 ( 12.1.0.2.4)) он говорит:
Если вы используете Visual Studio v2017, вот файл tnsNames:
c: \ program files (x86) \ инструменты разработчика oracle для vs2017 \ network \ admin \ tnsnames.ora
c: \ program files \ инструменты разработчика oracle для vs2017 \ network \ admin \ tnsnames.ora
Answers
pasluc7469 wrote:
hi experts, i've got a problem connecting to to Oracle DB.
I installed Oracle Enterprise DB into Windows Server 2008, in the Virtual Box platform.
now, i need to connect to the DB, by TOAD, from another platform (windows 7).. this is the error hope someone can help me.
thanks in advance.
Check if there is a firewall between and client and server as sb92075 said above. If this is not the firewall issue, Post your tnsnames.ora and listener.ora files.
What is your Oracle version?
Is it 32-bit or 64-bit?
Is oracle client 32-bit or 64-bit?
Is Toad 64-bit or 32-bit?
Is Windows 7 32-bit or 64-bit?
TSharma wrote:
Check if there is a firewall between and client and server as sb92075 said above. If this is not the firewall issue, Post your tnsnames.ora and listener.ora files.
What is your Oracle version?
Is it 32-bit or 64-bit?
Is oracle client 32-bit or 64-bit?
Is Toad 64-bit or 32-bit?
Is Windows 7 32-bit or 64-bit?
SQL*Net is totally independent (when properly installed) of OS, client software & architect size (32 or 64 bit).
sb92075 wrote:
SQL*Net is totally independent (when properly installed) of OS, client software & architect size (32 or 64 bit). >
I do not remember on the top of my head but 32-bit TOAD had some problem connecting to 64-bit oracle client or viva-vera. But there were some connectivity problems between Toad version and Oracle client versions. That problem was related to sqlnet.
sb92075 wrote:
SQL*Net is totally independent (when properly installed) of OS, client software & architect size (32 or 64 bit). >
I do not remember on the top of my head but 32-bit TOAD had some problem connecting to 64-bit oracle client or viva-vera. But there were some connectivity problems between Toad version and Oracle client versions. That problem was related to sqlnet.
I don't use TOAD.
TOAD had problems when its home directory path contained some "funky" character;
where "funky" is space character something like one of the following characters (,[,),]
I don't use TOAD.
TOAD had problems when its home directory path contained some "funky" character;
where "funky" is space character something like one of the following characters (,[,),]
>
Good for you. Can you mention what kind of problem did you face with those funky characters?What version of TOAD you are talking? I know when you install 32 bit TOAD in 64 bit OS, it's by default home would be under (x86). There is a bug in the Oracle client - when you run a program which has a bracket in the path, the Oracle client will fail to parse tnsnames.ora. But That is Oracle bug not TOAD.
I never had any problem using TOAD.
Я использую TOAD 10.2.1.3 под Windows7 и получаю следующую ошибку:
это странно, потому что точно по тому же пути я могу найти oci.dll . Это 64-битная система, проблема может быть не в этом! Есть идеи? Я благодарен за каждую подсказку!
Нет, но если я поставлю его туда, он вообще не сработает, действительно странно! Не имею представления!
@WernfriedDomscheit Просто хотел сказать, что добавление переменной пути в папку оракула исправило эту ошибку для меня.
Я также столкнулся с этой проблемой. Это из-за отсутствия/неправильного значения в вашей переменной PATH. После проверки перезапустите службы для Oracle и экземпляра, чтобы решить эту проблему.
Если вы используете TOAD, вам необходимо загрузить 32-разрядную версию Oracle Client Tools.
Поскольку клиентские инструменты различаются в зависимости от архитектуры каждого процессора, вам, вероятно, потребуется установить версии.
Вы можете проверить свой реестр. Если ключ HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_. существует, значит, у вас установлен 64-битный клиент Oracle. Если ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_. существует, значит, у вас 32-битная версия.
ну спасибо вам всем, у меня 64bit! У меня есть только KEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_.. Теперь вопрос, как я могу изменить его, пожалуйста?
Если вам не нужен 64-битный клиент, вы можете удалить его и установить 32-битный клиент. Если вам нужны оба, следуйте этой инструкции: Переполнение стека — установите Oracle x86 и x64 .
@maniA: я бы порекомендовал установить обе, поскольку одной программе нужна 64-битная версия, а другой — 32-битная версия. Просто загрузите клиентские инструменты с веб-сайта Oracle.
Я заметил, что последние установщики клиентов Oracle изменяют права доступа к файлам.
У меня был установлен 32-разрядный клиент Oracle 12.0.1 в течение года. Недавно я установил 64-битный клиент Oracle 12.0.1. Установка Oracle изменяет ВСЕ права доступа к файлам в 32-битных папках.
Мое приложение внезапно перестало работать.
Я изменил разрешения для всего в папках клиента Oracle, и приложение работает должным образом.
если вы используете 64-битный компьютер, Oracle не совместим с ним. Oracle не находит файл oci.dll в 64-разрядной версии.
Поэтому можно попробовать сменить оракул поверху. В результате этого домашний путь изменится.
По крайней мере, я решил эту ошибку, изменив путь.
С инструкциями по установке (не обновленными для 18_3) и загрузками на шаге 13 есть ОШИБКИ , так что следите за этим.
Когда вы создаете структуру папок для загрузок, просто пишите их по- старому «c:\oraclient». Затем, когда вы разархивируете базовую установку, SDK и мгновенную установку клиента для Windows 10_x64, извлеките их в «C:\oraclient\», потому что все они записываются в одну и ту же папку по умолчанию. Затем, когда вы установите переменную ENV (которая больше не является ORACLE_HOME, но теперь является OCI_LIB64) и PATH, вы укажете на «C:\oraclient\instantclient_18_3».
Чтобы убедиться, что вы все сделали правильно, разверните и найдите дубликаты папок «instantclient_18_3». Если они у вас есть, вырежьте и вставьте СОДЕРЖИМОЕ в корневую папку «C:\oraclient\instantclient_18_3\».
Тот, кто работает над документацией в Oracle, должен лучше устранять неполадки. Я видел «C:\oreclient_dir_install», «c:\oracle», «c:\oreclient» и «c:\oraclient», все они упоминались как каталоги установки, все для установки Windows x64.
Я использую TOAD 10.2.1.3 под Windows7 и получаю следующую ошибку:
Это странно, потому что точно по тому же пути я могу найти oci.dll . Это 64-битная система, возможно, это не проблема! Есть идеи? Благодарю за каждую подсказку!
Если вы используете TOAD, вам потребуется загрузить 32-разрядную версию Oracle Client Tools.
Поскольку клиентские инструменты различаются в зависимости от архитектуры процессора, вам, вероятно, потребуется установить версии.
Я использовал SQLTool, где я получал, что oci.dll не был найден, затем я загрузил Instantclient-basic-nt-12.2.0.1.0, извлек его и добавил папку до файла oci.dll в переменной пути
Например: Путь:.; D: \ Softwares \ Oracle Instant Client \ instantclient_12_2
Это решило мою проблему, теперь я могу открыть SQLTool
Если вы используете 64-битный компьютер, Oracle не совместим с ним. Oracle не находит файл oci.dll в 64-разрядной версии.
Поэтому вы можете попробовать поменять oracle home наверху. В результате домашний путь изменится.
По крайней мере, я решил эту ошибку, изменив путь.
Я заметил, что последние установщики клиентов Oracle меняют права доступа к файлам.
У меня был установлен 32-битный клиент Oracle 12.0.1 на год. Недавно я установил 64-битный клиент Oracle 12.0.1. При установке Oracle изменяются ВСЕ разрешения для файлов в 32-битных папках.
Мое приложение внезапно перестало работать.
Я изменил разрешения для всего в клиентских папках Oracle, и приложение работает должным образом.
Я тоже искал решение этой проблемы. Может, этот ответ кому-то поможет.
В моем случае аналогичная проблема возникла, когда я использовал Oracle Instant Client 18.5 для подключения к БД с помощью Toad 13.1.1.5
Чтобы решить эту проблему, я загрузил более свежую версию OIC - Oracle Instant Client 19.3 и Toad без проблем подключился к базе данных Oracle.
Возможно, возникла проблема несовместимости версий. Для новой версии Toad требуется новая версия библиотеки oci.
Оба OIC были 64-битными, и папки с обоими я добавил в переменную Path пользователя.
Клиентская ОС: Win10
Я просто добавил папку oracle к своим переменным окружения и исправил мою идентичную ошибку
У меня была эта проблема, я запускаю 64-битную Windows и скачал 64-битный пакет TOAD. В конце концов я пришел к выводу, что это произошло потому, что я разархивировал пакет в общей папке Windows с помощью unzip командной строки cygwin. Оказалось, что TOAD не понравились разрешения на некоторые файлы. Когда я разархивировал с помощью проводника Windows, все работало, как ожидалось.
С помощью инструкций по установке (не обновлено для 18_3) и загрузок, есть ОШИБКИ на шаге 13 , так что остерегайтесь этого.
Когда вы создаете структуру папок для загрузок, просто напишите их старым способом "c: \ oraclient". Затем, когда вы разархивируете базовую версию, SDK и мгновенную установку клиента для Windows 10_x64 извлеките их в «C: \ oraclient \», потому что они все записываются в одну и ту же папку по умолчанию. Затем, когда вы устанавливаете переменную ENV (которая больше не ORACLE_HOME, а теперь OCI_LIB64) и PATH, вы указываете на «C: \ oraclient \ Instantclient_18_3».
Чтобы убедиться, что вы все правильно поняли, просмотрите информацию и найдите все повторяющиеся папки "Instantclient_18_3". Если они у вас есть, вырежьте и вставьте СОДЕРЖАНИЕ в корневую папку "C: \ oraclient \ Instantclient_18_3 \".
Тот, кто работает с документацией в Oracle, должен лучше устранять неполадки. Я видел "C: \ oreclient_dir_install", "c: \ oracle", "c: \ oreclient" и "c: \ oraclient", все упомянутые как каталоги установки, все для установки Windows x64
Я установил как 32-битные, так и 64-битные драйверы Oracle 11g. Я ищу на своем компьютере файлы с именем "tnsnames.ora" и нашел 3 файла в следующих местах:
Меня удивляет наличие третьего местоположения файла tnsnames.ora.
На моем компьютере установлены следующие клиенты Oracle:
В зависимости от расположения каждой программы (Program Files (x86) vs. c: \ Program Files), это подсказывает мне, что 32-разрядная программа Toad должна использовать 32-разрядный драйвер, а dbForge - 64-разрядный драйвер.
Похоже, что dbForge использует файл tnsnames.ora либо в месте №2, либо в №3. Я знаю это, систематически переименовывая все файлы tns, кроме одного, а затем проверяя, доступны ли имена соединений, считанные из файла, при попытке создать новое соединение из приложения.
Однако TOAD, похоже, распознает только файл tnsnames.ora в расположении №3 и вообще не распознает файл tnsnames.ora в расположении 2! (Поскольку это была 32-битная программа, я не ожидал, что она распознает файл tns в местоположении 2, и это было так). Чтобы резюмировать тест TOAD для надежды на ясность, TOAD распознал только tns-файл в местоположении 3.
У других коллег нет файла tns в папке 3 на своих машинах. Я не знаю, почему. Когда я запускаю Toad, он показывает следующие 2 Home, причем 32-битный Home является активным.
Q1: Является ли OraClient11g_home1 моим 64-битным домашним компьютером или у меня установлено два клиента Oracle?
Q2: Почему 32-битная TOAD не использует tns в ячейке №1, а не только в ячейке №3?
Q3: Если я оставлю файл tns в местоположении 3, будут работать и dbForge, и TOAD, но я хотел бы знать, почему, чтобы я мог точно понять, как перемещать информацию tns с одного компьютера на другой.
2 ответа
Я не знаю, что случилось. Я нашел исполняемый файл установщика клиента (то есть он отличается от «мгновенного клиента», у которого нет установщика и переустановка которого тоже не помогла), очистил мою виртуальную машину от всего материала Oracle, запустил установщик с выбором «администратора» (= все доступное программное обеспечение в пакете), и это, наконец, работает. ODBC также был установлен.
Единственное, что нужно настроить для TFDCOnnection :
Где lODBCName является именем системного DSN ODBC.
(Я намеревался оставить это как комментарий для 10 тысяч пользователей, а затем удалить вопрос, но это невозможно, так как сегодня я назначил за него награду. Что ж, может быть, он служит кому-то еще).
Я уже сталкивался с подобной проблемой.
Затем я изменил свой файл TNSNAMES.ora и заменил ИМЯ СЕРВЕРА на SID , и внезапно стало возможным подключение ODBC.
hi experts, i've got a problem connecting to to Oracle DB.
I installed Oracle Enterprise DB into Windows Server 2008, in the Virtual Box platform.
now, i need to connect to the DB, by TOAD, from another platform (windows 7).. this is the error hope someone can help me.
thanks in advance.
Читайте также: