2012-02-11 2 views
2

Кто-нибудь знает, как подключиться к оракулу от клиента erlang в linux? Я предполагаю, что драйверы ODBC требуются.Подключить клиент erlang к oracle

+0

держать прокручиваемые курсоры с помощью оракула. Опция подключения odbc '{scrollable_cursors, off}'. –

+0

Прочтите ответ, который я получил ОТКАЗАТЬ ниже, он должен помочь –

ответ

2

Согласно документации Erlang ODBC is the way to go.

Существует API-интерфейс Erlang ODBC, который «должен работать на всех диалектах Unix, включая Linux ... Но в настоящее время он тестируется только для Solaris, Windows 2000, Windows XP и NT». Find out more.

Есть драйверы ODBC для Linux. Если вам повезет, ваш дистрибутив уже будет установлен. Find out more.

+0

действительно? В Erlang действительно нет драйверов драйверов? –

0

==== Ответ может быть очень полезен, если в Windows, но может содержать полезную информацию для Linux, а также =====

Теперь, прежде всего, нам нужно загрузить клиент oracle или oracle Database и установите его здесь: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html. Oracle устанавливает и создает папку с именем oracle (на окнах). Внутри этой папки вы обычно найдете свою папку $ HOME: C:\oracle\product\10.2.0\db_1. Если вы находитесь на окнах, то при доступе к настройкам ODBC, прочитав это: http://ozinisle.blogspot.com/2011/10/configuring-odbc-connection-for-oracle.html, вы создадите новый Data Source Name (DSN) по вашему выбору. Шаги примерно следующие:
1. Выберите System DSN
2. Создайте новый источник данных
3. Прокрутите вниз, чтобы выбрать Oracle в OraDB {Vsn} _home1
4. Укажите имя пользователя (UID), пароль
5. Запишите имя драйвера, которое вы выбрали, Запишите имя источника данных, которое вы ввели.
6. Проверьте подключение и убедитесь, что окна говорят, что это нормально.

Теперь, после этого, мы идем к стороне erlang. Посмотрите на этот модуль, его следует начать с общения с оракулом.

 
-module(oracle_client). 
-compile(export_all).
-define(CONNECT_OPTIONS,[ {auto_commit,on}, {scrollable_cursors, off} ]). -define(CONNECT_STRING,"DSN=data_source;UID=uid;PWD=password;DRIVER=Oracle in OraDb10g_home1").

connect()-> odbc:start(), try odbc:connect(?CONNECT_STRING,?CONNECT_OPTIONS) of {ok,ConnObject} -> {true,ConnObject}; Any -> {error,Any} catch E:E2 -> {exception,{E,E2}} end.
send_sql(ConnObject, SQLQuery)-> odbc:sql_query(ConnObject, SQLQuery).

Сервер Erlang ODBC должен работать первым. Erlang ODBC запросит у вас строку подключения и параметры. В параметрах в первую очередь следует отметить, что большинству драйверов Oracle нужны эти прокручиваемые курсоры. Затем в строке соединения вам будет необходимо ввести действительный UID (имя пользователя), пароль, DSN (имя источника данных) и имя драйвера, все это точно так же, как вы создали DSN в подключении ODBC Windows в вышеописанных шагах.

Все должно быть в порядке. Обратите внимание, что вы должны придерживаться драйверов oracle сами и избегать внешних драйверов ODBC Oracle. У меня есть опыт, связанный с использованием других сторонних драйверов, потому что, скажем, 10 миллионов подключений, водитель начинает запрашивать деньги/лицензию и блокирует ваш трафик от доступа к Oracle.

Сообщите мне, если у вас возникнут проблемы. Модуль выше немного грубо, не используйте его, потому что его просто модуль тестирования оболочки, иначе вам понадобится gen_server, который будет удерживать объект соединения, чтобы другая обработка просто продолжала обмениваться данными с ним. Пока вам удастся настроить имя источника данных с установленной БД Oracle или клиентом на вашем компьютере, этот модуль поможет вам в противном случае, большинство проблем в настройке ODBC Connection.

=== Linux ===
Для Linux, я думаю, вам нужно получить библиотеки odbc, например Easy Soft ODBC Drivers, или UnixODBC. Затем попробуйте настроить его так же, как мы это делали с окнами выше, а затем используйте модуль Erlang, указанный выше. Он все равно должен работать. Я боюсь, что я всегда подключался к оракулу из Windows и NOT Linux из-за многих проблем при настройке и настройке библиотек ODBC (дайте ему шанс, вы можете быть успешными в настройке Unix ODBC или Easy Soft ODBC-библиотек), в противном случае Эрлангская часть его разобрана.

+0

Спасибо, я постараюсь опубликовать обновление – kostas

Смежные вопросы