Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Всем привет.
Как подсоединиться FOXom к ORACLE 12C (версия 2, т.е. самая новая) используя SQLSTRINGCONNECT( ) зная?: 1: host ip: 192.168.131.125 2: port: 1521 3: SID: "orcl" 4: username: "имя" 5: password: "пароль" Не будет ли у кого примера такого рода соединения? Исправлено 5 раз(а). Последнее : AdamAry, 22.06.17 15:03 |
Re: Строка подсоединения к Oracle | |
---|---|
Grin Сообщений: 1083 Откуда: Kiev Дата регистрации: 05.12.2000 |
|
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Смотря какой ODBC драйвер используется, смотря как настроен Oracle-клиент...
Например:
Или
Формат его прописывания: MyTNS.SomeDomain.com = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.131.125)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = orcl)) )Для MS драйвера можно прямо в строке соединения весь этот длинный (DESCRIPTION=... указывать, однако я бы не советовал использовать MS драйвер без ОЧЕНЬ веских на то причин (т.к. он ОЧЕНЬ старый и кривой - местами до невозможности). P.S. Использовать непосредственно IP (а не DNS имя машины) для такого рода настроек - это раскладывать грабли на своём пути - ну или обеспечивать себя ------------------ WBR, Igor |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
У меня версия ORACLE 12.2
1: Откуда берётся "instantclient_12_1" после "in" ? 2: В sqlnet.ora прописано: NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT) Значит ли это что включен ezconnect способ разрешения имён и порт 1521 можно не указывать? 3: а в tnsnames.ora: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = compname.AA.BB.RU)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.AA.BB.RU) ) ) Тогда для строки подключения для использования Server SID использовать следующее?: Driver={Oracle in OraDB12Home1};Server=serverSID;Uid=myUsername;Pwd=myPassword; // OraClient11g_home1 4: Цитата:Что использовать вместо него? Исправлено 6 раз(а). Последнее : AdamAry, 19.06.17 15:46 |
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это просто название драйвера. Может быть совершенно произвольным - вообще ВСЁ, не только "часть после in" - как в реестре установщик пропишет, так оно и будет называться. А то как он прописывает - зависит от того какой Oracle клиент установлен. "Полные" пишут имя %OraHome%, instant - имя папки в которой развёрнут этот клиент... Это совершенно не принципиально. Список зарегистрированных ODBC драйверов можно посмотреть в утилите odbcad32.exe - только для x64 систем и фокса следует запускать утилиту из папки SYSWOW64, т.к. по умолчанию запускаемая из папки SYSTEM32 утилита показывает 64-битный драйверы, а фокс 32-разрядный и может использовать только 32-разрядные драйвера. Да, это значит что EZCONNECT разрешён. Порт можно не указывать если он 1251 - это "умолчание" оракла. Такая же, но с элементом DBQ=ORCL; Оракловский драйвер. Только ознакомится с особенностями его работы - в частности с NLS настройками влияющими на то запятую или точку пропишет фокс в поля типа N(x,y) - с дробной частью. Иначе будут "пропадать копейки". ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 19.06.17 14:31 |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
1:
А почему появилось "DBQ=...." и что это за птица? Почему настройки которые я показал развернули именно в сторону использования "DBQ"? Что конкретно из tnsnames.ora: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = compname.AA.BB.RU)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.AA.BB.RU) ) ) повлияло на то чтобы использовать "DBQ"? 2: Где и в какой директории OS Windows 10 располагается Оракловский драйвер и каковы особенности работы с ним в фоксе? 3: Цитата:В каком файле эти настройки хранятся и что надо изменить? Исправлено 4 раз(а). Последнее : AdamAry, 19.06.17 15:33 |
Re: Строка подсоединения к Oracle | |
---|---|
Божья_коровка Сообщений: 25731 Дата регистрации: 23.08.2001 |
AdamAry, что вам мешает настроить DSN и прекратить мучения?
Цитата: DSNOra - имя вашего настроенного источника DSN UserOra - ваш "логин" PassOra - ваш пароль И всё... Из хелпа - Цитата: ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 19.06.17 18:34 |
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Параметр строки подключения указывающий имя источника данных. docs.oracle.com Потому что именно через этот параметр задаётся имя источника данных для ODBC драйвера от оракла. Ничего. Он не располагается в "директории OS Windows 10". Его файлы лежат в структуре папок оракловского клиента. Список файлов и их назначение есть по ссылке выше. Никакого особого значения для работы с драйвером это не имеет. "Особенности работы" обсуждались на форуме - потрудись уж сам поискать соответствующие темы. Ни в каком файле они не хранятся. Могут задаваться параметрами строки подключения (для новых версий драйвера, 12-й в том числе). Могут меняться командами ALTER SESSION SET ... посылаемыми на сервер после установления соединения. По умолчанию они определяются исходя из параметра NLS_LANG прописанного в реестре для "полных" установок оракл-клиента, или через одноименную переменную окружения (это работает и для Instant версий клиента). Подробнее про "глобализацию", или, говоря иначе, "поддержку многоязычности" следует читать в документации. Начав с вот этой книги docs.oracle.com. Я, естественно, не собираюсь пересказывать всё содержание 100500 книг описывающих работу с ораклом ------------------ WBR, Igor |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Igor, при попытке создать появляется:
[attachment 27861 4dsn.GIF] [attachment 27860 dsn.GIF] Исправлено 1 раз(а). Последнее : AdamAry, 20.06.17 16:00 |
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Значит MS драйвер не может найти оракловского клиента. Что не понятно то в сообщении об ошибке?
Это и к лучшему, т.к. этот драйвер использовать не нужно. ------------------ WBR, Igor |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Цитата:1. Понял Igor. Драйвер MS использовать не будем. Тогда как подцепиться из фокса к ORACLEскому: HOME\bin\oracler12.dll HOME это у меня d:\app\WindowsUserName\virtual\product\12.2.0\dbhome_1\ Если конечно я правильно указал HOME\bin\oracler12.dll. oracler12.dll надо регистрировать или можно просто прописав к нему путь использовать напрямую dll без регистрации? 2. Вот из ораклового SQL Developer я подключаюсь к базе нормально как sys: [attachment 27863 sqldeveloper4.GIF] Причём этих семи параметров (всё выделенное жёлтым) достаточно для успешного подключения к базе данных. Или вот подключаюсь успешно к созданному пользователю таким образом через SQL Developer: [attachment 27864 sqldeveloper6.GIF] Интересно, что использует SQL Developer для подключения? Исправлено 5 раз(а). Последнее : AdamAry, 21.06.17 07:34 |
Re: Строка подсоединения к Oracle | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Пока у вас тут драйвер правильный не появится: %WINDIR%\SYSWOW64\odbcad32.exe - бесполезно строки соединений придумывать.
Если у вас ось 64х-битная. |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
У меня OS Windows 10 Enterprise 64 bit.
|
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Вот пример, но опять же Igor это работа если не ошибаюсь через ODBC драйвер MS:
aleksandr.ru А как же к фоксу приноровить родную оракловую dll? Исправлено 1 раз(а). Последнее : AdamAry, 21.06.17 09:06 |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
|
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Установить его - не просто "клиента" а именно компонент ODBC-драйвер. При том именно 32-разрядного (естественно для этого и сам клиент тоже должен быть 32-разрядным). Неправильно. dll ODBC драйвера это файл sqora32.dll (даже для 64-разрядного драйвера имя файла такое). Плюс к нему используется несколько других файлов - их список есть в документации на которую я давал ссылку. Расположен он может быть где угодно - это зависит от того какой вариант оракл-клиента используется. Полный, с установкой, или Instant - где просто разворачиваются файлы из архива и прописываются некоторые переменные среды. Использовать dll драйвера "напрямую" НЕЛЬЗЯ НИКАК. Она используется исключительно подсистемой ODBC винды (а уже её может использовать прикладная программа). Опять же всё это есть в приведенной документации - даже с картинками. Он не использует для работы ODBC драйвер. Есть много разных способов работы с сервером - ODBC драйвер, ADO провайдер, ADO.NET провайдер, JDBC драйвер (или провайдер, не в курсе явовской терминологии), прямые вызовы АПИ функций библиотеки oci.dll Для фокса наиболее удобным и естественным является ODBC драйвер. JDBC - либо "тонкий", либо "полновесный" вариант драйвера. Нет, это инструкция по установке instant версии оракл-клиента, после чего в панели управления ODBC появится оракловский драйвер. MS драйвер, кстати, тоже после этого заработает, т.к. описывается разворачивание 32-разрядной версии клиента и драйвера. Впрочем, эта инструкция весьма кривая - лучше использовать официальную документацию. Тем более что речь не про WinXP/Win7 и не про 11-ю версию клиента... ------------------ WBR, Igor |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
У меня и база данных Oracle 12с и Client Oracle 12с оба 64 bit ные, причём оба на одном компе. 1. Сейчас получается мне нужно снести 64 битный клиент и поставить 32 битный, а он встанет в 64 битный OS Windows 10? 1.1. А нельзя не снося это проделать? Как поставить только ".... именно компонент ODBC-драйвер" ничего не снося, или так не пойдёт? 1.2. А нельзя параллельно поставить и 64 бит и 32 битных Oracle клиентов на одной машине? 2. После того как прописал переменные среды windows: ORACLE_HOME и TNS_ADMIN смог создать в 64 битной "Администартор источника данных ODBC" источник, но он ведь не подходит для фокса, не так ли? Исправлено 4 раз(а). Последнее : AdamAry, 22.06.17 08:04 |
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Сносить x64 не обязательно. Ставить x86(32bit) - нужно. Должен. Хотя с этими ораклами постоянно какие-то затыки... Слишком массивный софт... Instant по любому установится - но вот заработает ли... Надо проверять. Можно. Но могут быть конфликты - до 12-й версии разноразрядные клиенты шибко "не дружили" друг с другом. Но это решалось переменными среды, в частности ПОРЯДКОМ перечисления путей в PATH. К какому первый путь вёл, тот и подхватывался. С 12-го вроде получше стало, по крайней мере 32-битный ODBC драйвер не пытается подхватить dll-ки 64-битного клиента, пропускает их и благополучно доходит до "своих" компонент. Только драйвер без клиента поставить нельзя - он не самодостаточный - по сути он (как и большинство других средств доступа) является интерфейсом к библиотеке oci.dll - а она уже и реализует всё взаимодействие с сервером. Не удаляя x64 компоненты установить можно. DSN это по сути лишь именованный набор параметров. Вопрос не в DSN как таковом, а в том какой драйвер он будет использовать. Если 64-битный, то фокс его использовать не сможет. Если 32-битный, то вполне. Тем паче что имена драйверов в 64-битной и 32-битной подсистемах вполне себе могут совпадать... ------------------ WBR, Igor |
Re: Строка подсоединения к Oracle | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Благодарствую Igor. Ты меня здорово просветил.
Понял. Ничего себе, не знал что до 11 включительно брался именно первый путь, в 12 версии пролучается 32 битный ODBC драйвер подхватывает автоматом dll 32 битного клиента, а 64 битный 64 битного, если я правильно понял. Кстати, вот полезная команда для проверки работоспособности Oracle клиента, набирать надо прямо в CMD:
Пути до HOME ов же можно посмотреть набрав:
ORACLE_HOME с полным путём до дома (D:\app\UserName\virtual\product\12.2.0\dbhome_1) и TNS_ADMIN со значением D:\app\UserName\virtual\product\12.2.0\dbhome_1\network\admin Переменная TNS_ADMIN нужна чтобы система легко нашла tnsnames.ora, где прописан dbq. Исправлено 9 раз(а). Последнее : AdamAry, 22.06.17 08:13 |
Re: Строка подсоединения к Oracle | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Все переменные среды (включая и PATH) можно посмотреть в консоли по команде set.
ORACLE_HOME нужен некоторым утилитам, но тому же ODBC драйверу или ADO.NET провайдеру или той же утилите sqlplus эта переменная не нужна - хватает наличия пути до dll в PATH. Ещё может быть очень полезной для instant клиентов переменная NLS_LANG - задающая и региональные настройки и, что более важно, кодировку с которой будет работать клиент. При том для фокса предпочтительнее выставлять значение AMERICAN_AMERICA.CL8MSWIN1251 - в "английской" локали изначально "правильная" десятичная точка стоит, а в русской - убогая запятая, которая приводит к проблемам с дробными числами. ------------------ WBR, Igor |
© 2000-2024 Fox Club  |