Не удается подключиться к удаленной базе данных oracle с помощью ruby-oci8, ORA-06401
Я пытаюсь использовать удаленную базу данных в своем приложении rails. Для этого я использую ruby-oci8, следуя этой инструкции: http://www.pixellatedvisions.com/2009/03/26/rails-on-oracle-part-2-setting-up-rails-to-connect-to-an-oracle-database
У меня нет проблем с частью 1, подключаясь к удаленной базе данных через sqlplus, но когда я пытаюсь использовать oci8:
ruby -r oci8 -e "OCI8.new('user', 'pass', 'host_ip:port/sid').exec('SELECT * FROM table') {|r| puts ' | ' r.join}"
Я получил:
oci8.c:267:in oci8lib_191.so: ORA-06401: NETCMN: invalid driver designator (OCIError)
from -e:1:in `new'
from -e:1:in `<main>'
Погуглив эту ошибку, я прочитал это http://www.dba-oracle.com/t_ora_06401_netcmn_invalid_driver_designator.htm не помогает моему делу. Я также прочитал, что у меня должен быть файл TNSNAMES.ORA, который у меня нет... поэтому я создал его без какой-либо удачи.
Кстати, я использую ruby-oci8-2.0.6-x86-mingw32.gem (потому что я в Windows), ruby 1.9.3 и rails 3.2.3
Любая подсказка?
РЕДАКТИРОВАТЬ
Погуглил еще немного и нашел:
- Описание проблемы: не удается запустить проверку работоспособности некоторых из ее баз данных. При получении сообщения об ошибке "ORA-06401: NETCMN: неверный указатель драйвера" и "Проверка работоспособности" отображается примечание "Сбой подключения (1)". Нет проблем с подключением к этой базе данных напрямую из окна подключения Toad.
- Причина. Проблема, связанная с использованием прямого подключения на клиенте 9i и выбором базы данных прямого подключения в Health Check.
- Решение: РЕШЕНИЕ 1. Подключитесь другим способом, выберите подключение как TNS вместо прямого. В этом случае вы можете использовать свой 9i клиент. РЕШЕНИЕ 2. Подключитесь с помощью другого клиента, обновите его до клиента 10g или 11g, если вам нужно использовать прямое подключение.