Попытка подключения Excel 2013 с Oracle – ORA-12154

Вопрос:

Я пытаюсь подключиться к Oracle через Power Query > From Database > From Oracle Database а затем я BI_TST, который находится внутри моего TNSNAMES (находится в: C:\oracle\product\10.2.0\client_2\network\ADMIN), и имеет соединение ниже внутри:

BI_TST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srv-oracle3.mycompany.com.br)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bitst)
)
)

Также у меня есть путь переменной, настроенный как TNS_ADMIN=C:\oracle\product\10.2.0\client_2\network\ADMIN.

Когда я использую SQL Developer для подключения, не используя TNS, устанавливая всю информацию вручную, она работает!

Когда я пытаюсь подключиться с помощью TNS в Excel, я получаю ошибку:

Message=ORA-12154: TNS:não foi possível resolver o identificador de conexão especificado

ErrorCode=-2146232008

Wich означает на английском языке: “не удалось разрешить идентификатор соединения”

Может ли кто-нибудь помочь мне в этом вопросе?

Заранее спасибо!

Лучший ответ:

Честно говоря, у меня были заполненные имена. Я понимаю идею, стоящую за ней, и могу ее оценить, но я больше трачу время на то, чтобы понять, почему она не работает, чем я экономлю лишние нажатия клавиш.

По моему мнению, просто обойти TNSnames использовать Oracle ezconnect:

srv-oracle3.mycompany.com.br:1521/bitst

На месте:

BI_TST

Это должно работать и для ODBC. Если вы не можете напрямую подключиться через драйвер PowerQuery Oracle, попробуйте пройти через ODBC. Хотя это дополнительный слой, которого вы, вероятно, не хотите, я сомневаюсь, что вы заметите разницу в производительности, и он может абстрагировать трудности, с которыми вам обычно приходится иметь дело.

Ответ №1

Чтобы уточнить ответ Hambone, подключите Excel к Oracle через драйвер клиента Oracle без использования имен TNS:

  1. Перейдите в Панель управления> Средства администрирования> Источники данных ODBC
  2. Перейдите на вкладку “Файл DSN”
  3. Выберите драйвер Oracle (например, Oracle11gr1)
  4. Укажите имя для нового источника данных (любое имя)
  5. Когда появится запрос на имя службы, введите host: port/servicename, например db123: 1521/service123

Надеюсь, это работает для всех.

Оцените статью
TechArks.Ru
Добавить комментарий