|
Программирование >> Oracle
Формат столбцов можно изменять с помощью команды COLUMN. Например, чтобы отменить выдачу столбца PARENT ID PLUS EXP, введите: SQL> column parent id plus exp noprint Компиляторы языка С Поддерживаемые сервером Oracle компиляторы языка С зависят от операционной системы. В Microsoft Windows я использую Microsoft Visual C/C + + . Я использую только средства командной строки (nmake и cl). Ни в одном из примеров не использовалась графическая среда разработки. Однако их можно при желании проверять и в этой среде. Вам придется самостоятельно сконфигурировать и настроить соответствующие файлы include и подключить нужные библиотеки. Все файлы управления проектом makefile, содержащиеся в данной книге, - очень маленькие и простые, из них вполне очевидно, какие файлы include и библиотеки необходимы. В среде Sun Solaris поддерживается компилятор языка С, входящий в состав пакета Sun SparcsWorks. И в этом случае я использовал для компиляции программ только средства командной строки, make и cc. Оформление кода Единственная особенность оформления кода, на которую я хочу обратить внимание читателей, - это именование переменных в коде PL/SQL. Например, рассмотрим следующее тело пакета: create or replace package body my pkg as g variable varchar2(25); procedure p(p variable in varchar2) l variable varchar2(25) ; begin null ; end; end; / В этом примере используются три переменные: глобальная переменная пакета G VARIABLE, формальный параметр процедуры, P VARIABLE, и, наконец, локальная переменная, L VARIABLE. Я именую переменные в соответствии с областями действия: все глобальные имеют префикс G , параметры - префикс Р , а локальные переменные - префикс L . Главная причина этого - необходимость отличать переменные PL/SQL от столбцов таблицы базы данных. Например, рассмотрим следующую процедуру: create procedure p(ENAME in varchar2) as begin for x in (select * from emp where ename = ENAME) loop dbms output.put line(x.empno); end loop; end; Она всегда будет выдавать все строки в таблице ЕМР. В операторе SQL конструкция ename = ENAME интерпретируется, конечно же, как сравнение столбца с самим собой. Можно использовать сравнение ename = P.ENAME, то есть уточнить ссылку на переменную PL/SQL именем процедуры, но об этом легко забыть, что приведет к возникновению ошибок. Я всегда именую переменные в соответствии с областью действия. В этом случае я могу легко отличить параметры от локальных и глобальных переменных, а также не путать имена переменных и столбцов таблицы. Другие особенности Каждая глава в этой книге самодостаточна. В начале каждой главы я удалял свою тестовую учетную запись и создавал ее заново. То есть, каждая глава начиналась с чистой схемы - без объектов. Если выполнять все примеры, с начала до конца главы, следует делать именно так. При запросах к словарю данных в поисках объектов, созданных в результате выполнения той или иной команды, вас могут сбить с толку объекты, оставшиеся от других примеров. Кроме того, я часто повторно использую имена таблиц (особенно таблицу Т), так что если не чистить схему при переходе к очередной главе, может возникнуть конфликт. Кроме того, если попытаться вручную удалять объекты, созданные в примере (а не просто удалять схему оператором drop user ИМЯ ПОЛЬЗОВАТЕЛЯ cascade), нужно учитывать, что в именах Java-объектов используются символы разных регистров. Так что, если выполнить пример из главы 19: tkyte@TKYTE816> create or replace and compile 2 Java source named demo 3 as 4 import java.sql.SQLException; то окажется, что для удаления необходимо выполнять оператор вида: tkyte@TKYTE816> drop Java source demo ; Java dropped. He забывайте использоватьдвойные кавычки вокругидентификаторов Java-объектов, поскольку они создаются и хранятся с учетом регистра. Разработка успешных приложений для Oracle Значительную часть времени я провожу, работая с программным обеспечением СУБД Oracle или, точнее, с людьми, которые это программное обеспечение используют. В течение последних двенадцати лет я работал над многими проектами, как успешными, так и закончившимися неудачно, и если бы потребовалось обобщить приобретенный при этом опыт несколькими фразами, я бы сказал следующее: успех или неудача разработки приложения базы данных (приложения, зависяще- го от базы данных) определяется тем, как оно использует базу данных; в команде разработчиков должно быть ядро программистов базы данных , обес- печивающих согласованность логики работы с базой данных и настройку производительности системы. Эти утверждения могут показаться очевидными, но опыт показывает, что слишком многие используют СУБД как черный ящик , о деталях устройства которого знать необязательно. Они могут использовать генератор SQL, позволяющий не затруднять себя изучением языка SQL. Возможно, они решат использовать базу данных как обычный файл с возможностью чтения записей по ключу. Как бы то ни б1ло, я могу вам сказать, что подобного рода соображения почти наверняка приводят к неправильным выводам - работать, не понимая устройства СУБД, просто нельзя. В этой главе описано, почему необходимо знать устройство СУБД, в частности, почему необходимо понимать: архитектуру СУБД, ее компоненты и алгоритмы работы; что такое средства управления одновременным доступом и каково их значение для разработчиков;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |