•    Количество вызовов сервера, которые производит клиент, возрастет, что приведет к появлению проблем, связанных с низкой производительностью. Чем больше время, требуемое для передачи сообщений между клиентом и сервером, тем острее будут эти проблемы.
•    Вам придется найти способ упаковки данных для пересылки от клиента к серверу, чтобы иметь возможность одновременно производить несколько логических обращений к соответствующему пакету PL/SQL. Это вполне реально, но возникнет необходимость предотвратить запись в ваш собственный кэш на стороне клиента. Данная задача не является тривиальной. Кроме того, код на стороне сервера тоже будет, в силу необходимости, сложным и, следовательно, подвержен ошибкам.
Если, читая следующие страницы, вы решите, что кэш на стороне клиента поможет решить некоторые проблемы проекта, то обяжете себя использовать и C/C++, и OCI. Если вы уже работаете с OCI и прекрасно разбираетесь в C/C++, это не должно вас отпугнуть. Но мы знаем массу людей, которые создали серьезные приложения Oracle, не зная ни OCI, ни C/C++, и подозреваем, что они не захотят переучиваться.
Система типов
До OracleS язык SQL в реализации Oracle поддерживал только предопределенные скалярные примитивные типы. Эти типы постоянно модифицировались и дополнялись. Язык PL/SQL, в отличие от SQL, использует новые типы данных (например, исключительно полезный Boolean) и позволяет объявлять переменные типа TABLE и RECORD, применяя в качестве их основы базовые примитивные типы.
С появлением OracleS разработчики и администраторы баз данных получили возможность определить собственные типы данных в языке SQL и использовать их для описания столбцов или целых строк в таблицах, например:
CREATE OR REPLACE TYPE staff_assignment_o AS OBJECT ( staff_id   NUMBER , start_on   DATE , end_on     DATE , recover_at NUMBER ) ;
5. Объекты	97