Программирование >>  Oracle 

1 ... 3 4 5 [ 6 ] 7 8 9 ... 469


Формат столбцов можно изменять с помощью команды 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ло, я могу вам сказать, что подобного рода соображения почти наверняка приводят к неправильным выводам - работать, не понимая устройства СУБД, просто нельзя. В этой главе описано, почему необходимо знать устройство СУБД, в частности, почему необходимо понимать:

архитектуру СУБД, ее компоненты и алгоритмы работы;

что такое средства управления одновременным доступом и каково их значение для разработчиков;



1 ... 3 4 5 [ 6 ] 7 8 9 ... 469

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.004
При копировании материалов приветствуются ссылки.
Яндекс.Метрика