Подключите клиент Erlang к оракулу - PullRequest
2 голосов
/ 12 февраля 2012

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

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Согласно документации Erlang ODBC - это путь .

Существует Erlang ODBC API, который "должен работать на всех диалектах Unix, включая Linux .... Но в настоящее время он тестируется только для Solaris, Windows 2000, Windows XP и NT". Узнать больше .

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

0 голосов
/ 13 февраля 2012

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

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

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

-module(oracle_client).
-compile(export_all).<br>
-define(CONNECT_OPTIONS,[
                {auto_commit,on},
                {scrollable_cursors, off}
            ]).
-define(CONNECT_STRING,"DSN=data_source;UID=uid;PWD=password;DRIVER=Oracle in OraDb10g_home1").<br><br>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.<br>
send_sql(ConnObject, SQLQuery)-> odbc:sql_query(ConnObject, SQLQuery).

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...