Реализации технологии JDBC для Oracle дает возможность java-программам обращаться к базе двумя методами:
Тонким клиентом (jdbc thin), по сути, представляющим собой реализацию протокола SQL* Net через TCP/IP на основе Java-сокетов.
Тонкому клиенту никакие клиентские библиотеки не нужны. Он платформо-независим и прекрасно себе может работать даже через java-аплеты в браузере.
Толстый клиент (jdbc oci) – для взаимодействия с базой использует интерфейс вызовов оракла (Oracle Call Interface) предоставляемый специальным OCI-драйвером, который должен быть установлен на клиентской машине. OCI-драйвер представляет собой набор библиотек, поставляемых вместе с клиентским или серверным ПО. Самый простой способ их найти – скачать Oracle instant client. Работать с базой данных через интерфейс OCI можно напрямую из java-программ используя все оракловые плюшки вроде ООП-биндингов через OCCI и т.п.
Если на клиенте – машине с которой не обходимо установить соединение с базой соответствующей версии OCI-драйвера нет – то сообщение об ошибке будет примерно таким: “no ocijdbc11 in java.library.path“. Если библиотека есть, но система не имеет ни малейшего представления о ней – читай как: “проверь свои переменные PATH!” – ошибка будет подобного же типа.
В ряде случаев требуемой версии oci драйвера просто нет в природе – с этим прискорбным фактом я столкнулся когда пытался завести на Маке распоследнюю версию SQLDevelopera. На момент написания последняя доступная версия клиентских библиотек для Mac Os – была 10.
Меж тем мучительно хотелось попасть в базу.
При работе с базой я обычно устанавливаю тип соединения TNS – при этом как раз и используются OCI-драйвер.
Для того чтобы соединение к базе было установлено достаточно изменить тип на Advanced и вручную указать строку вида:
jdbc:oracle:thin:@[HOST][:PORT]:SID
1 comment
Thank you!!!