Требуется ли для использования Oracle OCI API программирование на C? - PullRequest
0 голосов
/ 05 октября 2011

Я искал здесь:

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28395/toc.htm

но все выглядит как C или C ++. Могу ли я использовать любой другой язык для использования OCI?

Спасибо.

РЕДАКТИРОВАТЬ: мне нужно использовать прямой путь для объекта LOB (blob, clob и т. Д.) Я считаю, что для этого мне нужно использовать OCI.

РЕДАКТИРОВАТЬ: Я основываю свое предположение OCI на этом: Может ли прямой путь вставить в столбец большого объекта?

Ответы [ 4 ]

4 голосов
/ 05 октября 2011

По данным Oracle

"Oracle Call Interface (OCI) является наиболее полным, высоким производительность, родной интерфейс на основе языка C для Oracle База данных, которая предоставляет всю мощь базы данных Oracle. "

Однако существуют разные способы работы с базой данных Oracle. Какой язык вы хотите использовать и чего вы на самом деле хотите достичь?

1 голос
/ 05 октября 2011

Теоретически, каждый язык, который может вызывать стандартные функции C, должен иметь возможность использовать OCI.Это включает в себя такие языки, как C ++ и Delphi, но также включает в себя управляемые языки, такие как C # (которые могут получать доступ к этим функциям через P / Invoke) или Java (с собственным интерфейсом Java).

Однако, если ваша цель просточтобы получить доступ к Oracle, но не хотите делать это специально через OCI, гораздо лучше использовать любую библиотеку, специально предназначенную для вашего языка.Например, используйте ADO.NET под C # или JDBC под Java.

Большинство этих библиотек в любом случае используют OCI для внутреннего использования (с заметным исключением некоторых драйверов ADO.NET и JDBC для прямого подключения).

1 голос
/ 05 октября 2011

Если вы хотите использовать Java, вы можете использовать JDBC OCI . Я считаю, что есть также способы доступа к OCI через Perl, Python и Ruby, если хотите (хотя я их никогда не использовал).

0 голосов
/ 07 ноября 2011

Вы обнаружите, что большинство API-интерфейсов Oracle на других языках действительно связаны с OCI, используя любой механизм, который этот язык обычно использует для взаимодействия с библиотеками Си. Примеры включают cx_Oracle для Python, OCI * ML для OCaml и Oratcl . Они обычно абстрагируют OCI, который является очень низким уровнем, во что-то более простое в использовании из языка высокого уровня (например, подключение к базе данных - это одна строка в этих языках, но это страница кода в OCI, поскольку все должно быть настроено явно).

...