Разные подходы к извлечению данных
Программа на С или C++, которой необходим доступ к данным Oracle, может получить его с помощью:
•    предкомпилятора, который конвертирует встроенные операторы SQL в вызовы серверного API;
•    явных обращений к драйверу ODBC;
•    явных обращений к Oracle Call Interface (OCI).
Чтобы получить полный доступ к объектным возможностям сервера OracleS, программный код должен использовать OCI. OCI — это низкоуровневый интерфейс к Oracle, который, по оценкам многих экспертов, будет выведен из употребления, так как предкомпилятор использовать быстрее и проще. Тем не менее, OCI всегда давал программисту большую свободу при контроле над интерфейсом к базе данных и доказал неправоту экспертных суждений. И сейчас, далеко не устаревший, он находится в авангарде средств разработки Oracle.
У тех, кто никогда с ним не работал, OCI вызывает некоторый страх, и, наверное, стоит хорошо подумать, прежде чем навязывать его бригаде неопытных разработчиков лишь для того, чтобы использовать возможности OracleS, которые не поддерживаются другими средствами.
Обоснование использования OCI
Несмотря на свою сложность, OCI имеет целый ряд серьезных технических преимуществ, которые окажутся полезными в сложных программных проектах. По нашим прогнозам, индустрия инструментальных программных средств будет применять в специфических для Oracle слоях именно OCI, a не ODBC. Сотрудники Oracle говорили нам, что принято политическое решение о том, что сама корпорация перейдет на использование OCI в качестве интерфейса между собственными С- и С++-продуктами, которые обращаются к серверу баз данных. В прошлом эти продукты программировались так, чтобы использовать интерфейс более низкого уровня, который обычно называли интерфейсом пользовательских программ (UPI). Поскольку официальной документации на этот интерфейс не выпущено, вы, возможно, посчитаете включение слова "пользователь" в название интерфейса несколько противоречивым.
Тем не менее, принятое Oracle решение важно, потому что до сих пор UPI является единственным механизмом, который обеспечивает доступ ко всем компонентам сервера Oracle. С годами ряд возможностей, доступных на уровне UPI (например, точки сохранения), воплотились в синтаксисе SQL. Теперь Oracle говорит, что все возможности UPI будут доступны на уровне OCI. Если это так, то в репертуар программиста должен быть включен BECOME USER — UPI-вызов, который используется в IMPort для корректной настройки элементов словаря данных.
в. Инструментальная поддержка OracleS	117