Не удается создать прямое подключение к Oracle Server (Excel). Excel подключение к oracle


sql - Excel VBA подключается к удаленной базе данных Oracle с помощью InstantClient

Я пытаюсь использовать Excel (в основном 2003, для большей совместимости с пользователем) для подключения к удаленной базе данных Oracle. Я хотел бы запустить .sql script и вернуть набор данных на рабочий лист. Я нахожусь на 64-битной машине Windows 7. Я не знаю спецификаций сервера Oracle DB. Я хотел бы, чтобы это было как можно более легким (без дополнительных установок файлов на клиентских машинах, как можно больше используйте общие сетевые местоположения для требуемых файлов)

До сих пор:

Я загрузил и "установил" InstantClient из Oracle (версии 12.1 и 11.2 для 32-битного и 64-битного) в удаленное сетевое местоположение. Я попытался подключиться к Oracle DB с помощью SQL Plus, и он работал нормально (я попробовал несколько установленных версий InstantClient, чтобы узнать, будут ли проблемы с совместимостью). В качестве теста: используя SQL Plus и функцию Shell в VBA, я смог успешно синхронизировать данные в отдельный файл excel.

Я пробовал несколько разных форматов строковых строк, используя различные драйверы/провайдеры:

  • Драйвер = {Oracle в instantclient_11_2}
  • Драйвер = {Microsoft ODBC для Oracle}
  • Provider = MSDAORA
  • Provider = MSDAORA.1
  • Provider = OraOLEDB.Oracle

Ошибки, которые я получил:

"Run-time error '-2147467259 (80004005)': [Microsoft][ODBC Driver Manager] Driver SQLAllocHandle on SQL_HANDLE_ENV failed The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation..." "Run-time error '-2147467259 (80004005)': [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified" "Run-time error '3706': Provider cannot be found. It may not be properly installed"

И еще несколько подобных ошибок.

Я добавил сетевое местоположение, содержащее файлы instantclient, в мою переменную окружения PATH. Не знаете, какие другие переменные среды мне нужны или даже если мой текущий правильный.

Нужно ли: TNS_ADMIN? ORACLE_HOME?

Вопрос:

  • Как подключиться к удаленной базе данных Oracle с помощью VBA, используя файлы instantclient, расположенные в местоположении сети (общего доступа)?

    • Какая правильная строка полного соединения? (Я использовал формат EZConnect с SQLPlus, являются ли фактические данные соединения одинаковыми? И для уточнения, может ли кто-нибудь опубликовать пример того, как формат EZConnect преобразуется в другой формат (ы)?)

      My EZConnect Format: username/[email protected]/mydb
    • Какой "поставщик" или "драйвер" следует использовать для этой цели и существуют ли существенные различия?

    • Какие переменные окружения я требуют, чтобы это работало?

Я нашел много вопросов, которые похожи или связаны друг с другом, но никто из них напрямую не ответил на мой вопрос или не помог мне полностью решить его.

qaru.site

database - Подключение к базе данных Oracle через Excel

Как вы установили 32-битный и 64-битный клиент Oracle?

Пожалуйста, ознакомьтесь с этой инструкцией: BadImageFormatException. Это произойдет при работе в режиме 64 бит с установленными 32-битными клиентскими компонентами Oracle

Ваше преимущество - 32 бит, и вы пытаетесь использовать 32-битный Oracle. Я предполагаю, что вы запускаете 64-битную версию "Администратора ODBC" - возможно, это несоответствие. Или у вас есть проблема в вашей PATH относительно %ORACLE_HOME% и/или %ORACLE_HOME%\bin папки

Ваш Excel 32-битный, так что в целом вы сделали правильный подход, поставив 32-битный клиент в PATH и ORACLE_HOME, вы не можете смешивать 32-битные и 64-битные сборки в одном процессе. Кстати, когда вы будете следовать инструкциям выше, Windows будет управлять этим автоматически.

Я предполагаю, что вы установили Oracle Instant Client. Мгновенный клиент по умолчанию не включает ни драйвера ODBC, ни поставщика данных Oracle (ODP.NET, Oracle.DataAccess.Client)

ODBC

Возможно, у вас есть 2 драйвера ODBC, один из которых обычно называют Oracle в OraClient12_home1, а один из Microsoft называется Microsoft ODBC для Oracle (который должен быть установлен по умолчанию при установке Windows, однако для этого также требуется Oracle Client).

Драйвер ODBC от Oracle доступен для 32-битного и 64-битного, драйвер Microsoft выходит только на 32-разрядный. У вас есть 2 администратора ODBC, 32 бит (запустите c:\Windows\SysWOW64\odbcad32.exe) и 64 бит (запустите c:\Windows\System32\odbcad32.exe). Там вы должны увидеть установленные драйверы для 32 или. 64-битная.

Поставщик данных Oracle

Для поставщика данных у вас аналогичная ситуация. У вас есть один из Microsoft (поставщик данных Microsoft.NET Framework для Oracle, System.Data.OracleClient) и Oracle (Oracle Data Provider for.NET, Oracle.DataAccess.Client, несколько версий). Оба доступны для 32-битного и 64-битного.

В принципе, не имеет значения, какой драйвер/провайдер вы используете для подключения к Oracle - только архитектура (т.е. 32 против 64 бит) должна соответствовать. Каждый драйвер/поставщик требует установки Oracle Client. Все драйверы/поставщики из Microsoft устарели, вы должны предпочесть Oracle (как указано в предупреждающем сообщении)

другие

Oracle также предоставляет ODP.NET, управляемый драйвер, который не требует дальнейшей установки Oracle Client и работает как на 32-битной, так и на 64-битной. Однако я не знаю, можете ли вы использовать это в Excel.

И последнее, но не менее важное: у вас также есть поставщик OLE DB. Опять один из Microsoft (поставщик Microsoft OLE DB для Oracle) и один из Oracle (Oracle Provider for OLE DB). Поставщик Microsoft существует только для 32 бит и устарел.

qaru.site

Не удается создать прямое подключение к Oracle Server (Excel) MS Excel онлайн

Привет, Я пытаюсь использовать некоторый код SQL, который я написал в SQL-разработчике через прямое подключение к базе данных через Excel. К сожалению, сообщение об ошибке, которое я получаю, когда я пытаюсь:

«Попытка загрузить клиентские библиотеки Oracle бросила BadImageFormatException. Эта проблема возникнет при работе в режиме 64 бит с установленными 32-битными клиентскими компонентами Oracle».

Я старательно установил клиент Oracle 64bit на своем ПК, чтобы, по крайней мере, работать. К сожалению, я потратил большую часть двух дней на поиск решений в Интернете без успеха. Кто-нибудь знает, как я могу заставить Excel использовать мой 64-битный клиент или избежать этой ошибки по-другому?

Обновление: я считаю, что, несмотря на все мои усилия, проблема находится где-то в моем файле TNSNAMES, так как я не могу подключиться с помощью SQL Plus. Вот отредактированная версия моей строки Connection. Опущенные данные верны, так как они такие же, как я использую для SQL Developer. Я что-то упускаю?

DB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SID = SID1)(SERVER = DEDICATED) ) ) DB2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SID = SID2)(SERVER = DEDICATED) ) )
Solutions Collecting From Web of "Не удается создать прямое подключение к Oracle Server (Excel)"

Очевидно, что это что-то маленькое в настройках или конфигурации вашего компьютера.

Я бы предложил вам посмотреть переменную среды PATH вашего компьютера. Он может относиться к более старой версии Oracle Server или Oracle Client Components .

Убедитесь, что вы знаете, что используете для доступа к Oracle из Excel, JDBC или ODBC?

Это всегда маленькие детали, которые сводят нас с ума.

Вы видели какие-либо из этих ответов?

Подключение SQL Server 2012 к Oracle

Получение MS Office 2013 (32-разрядная версия) Excel и Access для подключения к базе данных Oracle, когда установлены 32 и 64 клиента

и я нашел эту ссылку слишком сложной, чтобы скопировать все на ответ:

Подключение к Oracle через драйвер ODBC

И вы можете попробовать подключиться к Oracle с ODBC с помощью ODAC или клиента Oracle, загрузить ODAC112030_x64.zip с веб-сайта Oracle. Вот ссылка на то, как установить его. НАСТРОЙКА ДРАЙВЕРА И ДАННЫХ ORACLE ODBC

excel.bilee.com

database - Подключение к базе данных Oracle с помощью Excel

Как установить 32bit и 64bit Oracle Client?

Пожалуйста , обратите внимание на эту инструкцию: BadImageFormatException. Это будет происходить при работе в 64 - битном режиме с 32 бит Oracle клиентских компонентов , установленных

Ваш первенствует является 32bit , и вы пытаетесь использовать 32bit Oracle. Я предполагаю , что вы запускаете 64 - битную версию «ODBC Administrator» - там может быть несоответствие. Или у вас есть проблемы в вашем PATHотношении %ORACLE_HOME%и / или %ORACLE_HOME%\binпапки

Ваш Excel является 32 - битной, так и в целом вы сделали правильный подход, поставив 32 - битный клиент в PATHи ORACLE_HOME, вы не можете смешивать 32bit и 64bit сборки в одном процессе. Кстати, если вы будете следовать инструкциям выше вашего Windows , будет управлять автоматически.

Я предполагаю , что вы установили Oracle Instant Client. Instant Client по умолчанию не включает ни какой - либо драйвер ODBC , ни поставщика Oracle Data (ODP.NET, Oracle.DataAccess.Client)

ODBC

Вы можете иметь 2 драйвера ODBC, один из Oracle обычно называемый как Oracle в OraClient12_home1 и один из Microsoft под названием ODBC Microsoft для Oracle (который должен быть установлен путем установки Windows , по умолчанию, однако он также требует клиента Oracle).

Драйвер ODBC от Oracle доступна для 32 - битных и 64 - битных, драйвер Microsoft выйдет только для 32 - битных. У вас есть 2 ODBC Администраторы, 32bit (бег c:\Windows\SysWOW64\odbcad32.exe) и 64 - битный (бег c:\Windows\System32\odbcad32.exe). Там вы должны увидеть установленные драйверы для 32 соответственно. 64 - битная.

Поставщик данных Oracle

Для поставщика данных у вас есть подобная ситуация. У вас есть один из Microsoft ( поставщик Microsoft .NET Framework данных для Oracle , System.Data.OracleClient) и от Oracle ( Provider Oracle Data для .NET , Oracle.DataAccess.Client, несколько версий). Оба доступны для 32 - битной и 64 - битной.

В принципе, это не имеет значения, какой драйвер / поставщик используется для подключения к Oracle - только архитектуре (т.е. 32 против 64 бит) должны соответствовать. Каждый водитель / поставщик требует установки Oracle соотв клиента. Все водители / провайдеры от Microsoft устарели, вы должны предпочитать те Oracle (как указано в сообщении предупреждения)

другие

Oracle предоставляет также ODP.NET, управляемый драйвер , который не требует какой - либо дальнейшей установки Oracle Client и работает на оба, 32 - битном и 64 - битном. Тем не менее, я не знаю , можно ли использовать это в Excel.

И последнее , но не в последнюю очередь, вы также поставщика OLE DB. Опять один из Microsoft ( Microsoft OLE DB Provider для Oracle ) и один из Oracle ( Oracle Provider для OLE DB ). Поставщик Microsoft существует только для 32 - битных и устаревшим.

coredump.su

Подключение к 32-битовому серверу Oracle с 64-битным Excel MS Excel онлайн

Я пытаюсь подключить свой Excel к Oracle с этой строкой соединения в VBA:

dim cn As New ADODB.Connection cn.Open "Provider=OraOLEDB.Oracle;Data Source=source;User Id=userid;Password=pwd;"

Я получаю эту ошибку:

Run-time error '3706': Provider cannot be found. It may not be properly installed.

Соответствующие ссылки:

Microsoft ActiveX Data Objects 6.1 Library OraOLEDB 1.0 Type Library
  • Excel – это 64-разрядная версия MS Office Professional Plus 2010
  • Windows – 7 Enterprise, пакет обновления 1, 64 бит
  • Клиент Oracle – 11.2.0 32 бит (я думаю)
  • Сервер Oracle – это Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64-битное производство

Теперь … Я просмотрел сеть и не могу понять, в чем проблема, но, насколько я понимаю, есть 32-битные конфликты с 64-битными конфликтами с драйверами, которые я использую. Я пытаюсь понять, какой путь я должен предпринять, прежде чем я включу ИТ-отдел моей компании, чтобы попытаться установить для меня материал. Должен ли клиент Oracle быть 64-битным, если MS Office? Или мне просто нужны 64-битные компоненты доступа к данным Oracle? Я пробовал кучу разных строк соединения без успеха, включая использование MSDAORA вместо OraOLEDB.Oracle …

Solutions Collecting From Web of "Подключение к 32-битовому серверу Oracle с 64-битным Excel"

Да, когда вы используете 64-разрядный Excel, вы должны установить также 64-битный клиент Oracle и 64-разрядный поставщик OLE DB.

Поставщик OLE DB от Microsoft (то есть MSDAORA ) не существует для 64-разрядных. Он существует только для 32-бит и уже давно устарел.

Я не знаю, нужен ли вам 32-разрядный клиент Oracle для чего-то другого, поэтому, возможно, вы не можете просто удалить его с вашего ПК. Вот инструкция по установке как 32-битного, так и 64-битного Oracle Client на одной машине. Установите Oracle Client x86 и x64

У меня тоже была такая же проблема, и решение заключается в том, чтобы установить драйверы oracle для сеанса excel для 32-битных драйверов и инициировать excel.

Я использую следующий файл Bat, чтобы открыть excel, и он подключается к оракулу без каких-либо проблем:

#

Set Temp=C:\Temp Set TMP=C:\Temp Set Oracle_Home= #YourDriveLetterhere - >M:\ORA12C\product\12.1.0\client_1 Set Path=C:\Windows;C:\Windows\System32;M:\ORA12C\product\12.1.0\client_1\bin;M:\ORA12C\product\12.1.0\client_1\nls\mesg;M:\ORA12C\product\12.1.0\client_1\network\admin; START "" "C:\MacroFileNameWhichConnectsToOracle.xlsm"

#

Сервер oracle не имеет значения.

Попробуйте открыть окно dos и введите c: \ tnsping yourservername

посмотрите на проблемы установки.

excel.bilee.com

Подключиться к базе Oracle из Excel

Ответ: привет всем

Небольшой отчет по востановлению.

Может кому будет интересно. Во всяком случае мне бы такая помятка бы помогла.:-)

У кого есть задача поднять базу, а вариант во втором пункте их не устраивает по каким либо причинам :-).

первое нужно создать точно такое же окружение. Имя машины, домен, базу и тогда вариант предложенный scott tyger МОЖЕТ прокатить.

У версии 11g если четыре версии, а на сайте только последняя. Остальные по заявке или интернет большой :-).

Н-р: Последняя создает FLASH RECOVERY AREA, а моя FAST RECOVERY AREA по дефалту

Q.Tarantino в посте дает ссылку, если не найдете свою версию - можно проапргейдисться.

Главное это 1. controlfiles, 2. pfile, и конечно 3. dbf

Pfilescott tyger описал как можно создать pfile если его нет.

я сделал проще, сделал такую же базу и pfile взял из неё

далее по контролфайлам

если 1. их нет 2. испорченные 3. или ошибка контрол файл не признает dbf файл по размеру, дате создания или еще какой причине

томне помог пересодать контролфайлы

Т.е. при наличии dbf файлов остальное можно найти или сделать :-)

Остальные подпапки не критичны:Т.е. контролфайлы, pfile, dbf это главное.

Далее по ссылке создаем сервис согласно рекомендации scott tyger

Если база целая, то счастье есть

Если выдает ошибку при запуске, то гугль в помощь.

У меня номально примантировалось, но выдала ошибку при открытии

ORA-01194: file 1 needs more recovery to be consistent

Но рековери просит файлы из Fast Recovery Area, а там было пусто.

Хорошо описано решение по ссылке

в комментариях описано что второй метод лучше, но у меня получилось только после того как я сделал первый метод, а потом второй.

Если база открылась, запускаем sqLplus и выполняем простейший запрос. Получили ответ. Еще на шаг ближе :-)

Далее нужно создать oracleDBConsole.

Как здесь советовали - надо пересоздать консоль. Вот тут у меня и были некоторые сложности. Она не хотела никак создаваться простейшими командами

типа

и ими подобными. В большинстве случаев это ссылка должна была помочь.

Мне помогла следующая ссылка

хоть и для дестятой версии, но мне помогла.

На команде

a. drop user sysman cascade;

база накрылась. И я утвердился, что в вся проблема было в SYSMAN.

Здесь был recovery until cancel.

Затем снова с команды а. и до создания службы.

И вот тогда все пошло и у Вас я думаю,тоже пойдет

Спасибо всем за советы и подсказки куда копать

Всем удачного дня!

З.Ы. to solidit.pro

я сделал полное восстановление базы данных Oracle, не сделав до этого ни одного клона какой-то базы данных Oracle. Я даже с ней не работаю, просто у друга база упала, а я дурашка на пиво халявное позарился :-)

forundex.ru