1. Ознакомление с примерами PL/SQL программ по главам 1-3 и 6-10 книги /2/
Темы этих глав:
Введение в PL/SQL (глава 1)
Основы PL/SQL (глава 2)
Записи и таблицы (глава 3)
Курсоры (глава 6)
Подпрограммы: процедуры и функции (глава 7)
Модули (глава 8)
Триггеры (глава 9)
Обработка ошибок (глава 10)
2. Написание, отладка и выполнение программ для заданной преподавателем предметной области (такая предметная область была задана для выполнения SQL лабораторных работ), соответствующих программам в вышеприведенных главах книги /2/. Программы из /2/ открыты для общего пользования на сайте издательства. Книга /2/ имеется в учебном фонде МИФИ.
В нижеприводимой таблице 4 уточняется, что студент должен выполнить в соответствии с образцами программ из /2/.
Таблица 4
глава
Названия программ – примеров,
по образцам которых студент должен написать программы
для своей предметной области
Что надо выполнить на лабораторных работах (написать на PL/SQL, отладить и продемонстрировать в работе
3GL_4GL.SQL, CURSOR.SQL, SIMPLE.SQL, NUMERIC.SQL
Для одной из таблиц предметной области написать анонимный блок, предусматривающий использование явного курсора, цикла FOR, вывод информации с помощью DBMS_OUTPUT.PUT_LINE, а также занесение информации в служебную таблицу (типа TEMP_TABLE). Служебную таблицу потребуется создать в своей схеме.
ALLTHREE.SQL, ALLTHREE1.SQL, COMMENTS1.SQL,
EXITWHEN.SQL,
FORSCOPE.SQL,
GOTO.SQL,
IF1.SQL, If1b.sql,
NULL.SQL, PROC.SQL, TRIGGER.SQL
Для одной из таблиц предметной области написать:
А) хранимую процедуру, использующую курсор, цикл FOR, условие IF…THEN….ELSIF…THEN...ELSE…END IF, вывод информации с помощью DBMS_OUTPUT.PUT_LINE, а также занесение информации в служебную таблицу;
Б) триггер на вставку, проверяющий некоторое ограничение (придумать самостоятельно) на вставляемую символьную информацию
ASSIGN.SQL, COUNT.SQL, DELETE.SQL, EXISTS.SQL, FRSTLAST.SQL, NULLTAB.SQL, NXTPRIOR.SQL, SELECT.SQL, TABREC.SQL
Для одной из таблиц предметной области написать
анонимный блок, предусматривающий работу с записяи и таблицами PL/SQL: заполнение таблиц, извлечение данных из таблиц, удаление строк таблицы, а также использование в работе с таблицами условия IF, простого цикла LOOP и метода NEXT
BADFETCH.SQL,
BINDS.SQL,
COMMIT1.SQL,
COMMIT2.SQL,
CUREXAMP.SQL,
CURSOR2.SQL,
FORLOOP.SQL,
FORUPDAT.SQL,
NOMATCH1.SQL,
NOMATCH2.SQL,
SIMPLE.SQL,
WHILE.SQL
Для нескольких таблиц предметной области написать
анонимный блок и хранимую процедуру, использующие явный и неявный курсор. Эти блок и процедура должны предусматривать использование связанных переменных в курсоре, цикл FOR, извлечение и изменение значений таблицы в этом цикле FOR, использование различных курсорных атрибутов (SQL%NOTFOUND, SQL%ROWCOUNT), использование курсорной переменной
ADDSTUD.SQL, ALMOSTFL2.SQL, CALLFUNC.SQL,
CALLME.SQL,
CALLPROC.SQL,
CLASINFO.SQL,
DEFAULT.SQL,
ERROR.SQL,
FORWAR.SQL (MUTUAL.SQL по Скотту Урману),
FORWARD.SQL,
LOCAL2.SQL,
LOCAL.SQL,
MODETEST1.SQL,
RFCLASS2.SQL
Для нескольких таблиц предметной области написать:
А) функцию, возвращающую символьное или числовое значение;
Б) Хранимую процедуру, использующую обращение к функции, явный курсор, цикл FOR, локальную процедуру.
Текст этого задания можно дополнительно уточнить с преподавателем.
CLPACK.SQL,
CLLIST.SQL,
My_Studops.sql,
OVERLOAD.SQL,
RANDOM.SQL,
EXPORT.SQL
Скомпилировать модуль export.sql для своей схемы (настройку файла иниц-х параметров- установку параметра utl_file_dir и задействование его, выдачу объектной привилегии execute на sys.utl_file владельцу схемы, из которой будет выполняться экспорт, выполнит преподаватель) и проверить его работу;
Откомпилировать модуль SPELCHEK.SQL из главы 5 и проверить его в работе, для чего предварительно создать и заполнить таблицу s_emp (скрипт s_emp.sql в главе 5).
Примеры для проверки работы взять со стр. 123-125 книги /2/
UPDATEMS.SQL,
INSTEAD.SQL,
ORDER.SQL,
PSEUDO.SQL,
STUDID.SQL,
RSCHANGE.SQL,
RSINSERT.SQL,
LIMMAJOR.SQL,
MUTATING.SQL,
Demobld.sql
В своей схеме создать для одной из таблиц триггер на вставку, изменение и удаление данных и продемострировать его в работе. Создать представление для одной из таблиц по типу представления на стр.208 книги /2/ и для этого представления создать триггер instead of. Создать триггер с использованием :new, :old и триггерных предикатов INSERTING, UPDATING, DELETING. Проверить в работе каскадное изменение данных (выполнить скрипт Demobld.sql и проверить его работу для таблицы DEPT по примеру на стр.223 книги /2/)
Выполнить все скрипты главы 10 и задать вопросы преподавателю по непонятным моментам
Написать хранимую процедуру с несколькими (!) exseption
При выполнении лабораторных работ студенту может потребоваться выполнить корректировку «своей» предметной области (добавить столбец/столбцы в таблицу, определить его/их внешним ключем, заполнить его/их; добавить новую таблицу/таблицы и заполнить ее/их; заполнить новыми данными ранеее существовавшую/существовавшие таблицу/таблицы и т.д.).Все эти корректировки должны быть скомпанованы в отдельном скрипте, который, как и spol –файлы лабораторных работ, предъявляются преподавателю при сдаче лабораторных работ. Лабораторные работы могут выполняться студентом вне дисплейного класса, а на занятиях – предъявляться преподавателю для их сдачи. При сдаче преподаватель может предложить студенту скорректировать сдаваемые программы для выполнения предлагаемых преподавателем дополнительных действий по обработке информации предметной области.
В разделе I уже говрилось о том, график выполнения лабораторных работ по освоению SQL и PL/SQL предусматривает длительность аудиторной лабораторной работы для каждого студента - четыре академических часа раз в две недели. Поэтому, начиная с девятой недели (мразу после контрольной по SQL) на каждом из двух – трех занятий во второй половине семестра студент должен сдавать преподавателю программы, написанные в соответствии с образцами из трех - пяти глав таблицы 4, чтобы к контрольной работе по PL/SQL в конце семестра выполнить задания по всем десяти главам из таблицы 4.
Литература
1. Т. Кайт. Oracle для профессионалов. Книга 1. Москва●Санкт-Петербург●Киев:
DIASOFT, 2004
2. Скотт Урман. Программирование на языке PL/SQL. Москва.: ЛОРИ, 2001.
3. Валерий Юринский, Анатолий Бачин, Виктор Абрамов Oracle 7. Практическое руководство. SoftService. Москва, 1997.
4. Санжей Мишра, Алан Бьюли. Секреты Oracle SQL. Санкт-Петербург● Москва: Символ-
Плюс, 2003
5. Документация для Oracle10g
Приложение 1. Скрипт demo.sql создания предметной области пользователя DEMO
Set echo on
Set termout on
drop table CUSTOMER cascade constraint;
drop table DEPARTMENT cascade constraint;
drop table EMPLOYEE cascade constraint;
drop table ITEM cascade constraint;
drop table JOB cascade constraint;
drop table LOCATION cascade constraint;
drop table PRICE cascade constraint;
drop table PRODUCT cascade constraint;
drop table SALARY_GRADE cascade constraint;
drop table SALES_ORDER cascade constraint;
alter session set nls_date_format='dd-mon-yyyy';
alter session set nls_language='AMERICAN';
CREATE TABLE JOB(
JOB_ID NUMBER(3,0) NOT NULL,
FUNCTION VARCHAR2(30) NULL,
CHECK (JOB_ID IS NOT NULL),
CHECK (FUNCTION IS NOT NULL),
PRIMARY KEY (JOB_ID)
);
insert into job values( 667 ,'CLERK');
insert into job values( 668 ,'STAFF');
insert into job values( 669 ,'ANALYST');
insert into job values( 670 ,'SALESPERSON');
insert into job values( 671 ,'MANAGER');
insert into job values( 672 ,'PRESIDENT');
CREATE TABLE LOCATION(
LOCATION_ID NUMBER(3,0) NOT NULL,
REGIONAL_GROUP VARCHAR2(20) NULL,
CHECK (LOCATION_ID IS NOT NULL),
PRIMARY KEY (LOCATION_ID)
);
insert into LOCATION values( 122 ,'NEW YORK');
insert into LOCATION values( 124 ,'DALLAS');
insert into LOCATION values( 123 ,'CHICAGO');
insert into LOCATION values( 167 ,'BOSTON');
CREATE TABLE DEPARTMENT(
DEPARTMENT_ID NUMBER(2,0) NOT NULL,
NAME VARCHAR2(14) NULL,
LOCATION_ID NUMBER(3,0) NULL,
CHECK (DEPARTMENT_ID IS NOT NULL),
PRIMARY KEY (DEPARTMENT_ID),
FOREIGN KEY (LOCATION_ID) REFERENCES LOCATION(LOCATION_ID)
);
insert into department values( 10 ,'ACCOUNTING', 122 );
insert into department values( 20 ,'RESEARCH', 124 );
insert into department values( 30 ,'SALES', 123 );
insert into department values( 40 ,'OPERATIONS', 167 );
insert into department values( 12 ,'RESEARCH', 122 );
insert into department values( 13 ,'SALES', 122 );
insert into department values( 14 ,'OPERATIONS', 122 );
insert into department values( 23 ,'SALES', 124 );
insert into department values( 24 ,'OPERATIONS', 124 );
insert into department values( 34 ,'OPERATIONS', 123 );
insert into department values( 43 ,'SALES', 167 );
CREATE TABLE EMPLOYEE(
EMPLOYEE_ID NUMBER(4,0) NOT NULL,
LAST_NAME VARCHAR2(15) NULL,
FIRST_NAME VARCHAR2(15) NULL,
MIDDLE_INITIAL VARCHAR2(1) NULL,
JOB_ID NUMBER(3,0) NULL,
MANAGER_ID NUMBER(4,0) NULL,
HIRE_DATE DATE NULL,
SALARY NUMBER(7,2) NULL,
COMMISSION NUMBER(7,2) NULL,
DEPARTMENT_ID NUMBER(2,0) NULL,
CHECK (EMPLOYEE_ID IS NOT NULL),
CHECK (DEPARTMENT_ID IS NOT NULL),
PRIMARY KEY (EMPLOYEE_ID),
FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID),
FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID),
FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT(DEPARTMENT_ID)
);
insert into employee values(7839,'KING', 'FRANCIS', 'A',672,NULL,'17-NOV-1985',5000,NULL,10);
insert into employee values(7505,'DOYLE', 'JEAN', 'K',671,7839,'04-APR-1985',2850,0, 13);
insert into employee values(7555,'PETERS', 'DANIEL', 'T',670,7505,'31-MAR-1985',1250,300, 13);
insert into employee values(7557,'SHAW', 'KAREN', 'P',670,7505,'02-APR-1985',1250,1200,13);
insert into employee values(7600,'PORTER', 'RAYMOND', 'Y',670,7505,'15-APR-1985',1250,900, 13);
insert into employee values(7820,'ROSS', 'PAUL', 'S',670,7505,'01-JUN-1985',1300,800, 13);
insert into employee values(7950,'JENSEN', 'ALICE', 'B',667,7505,'15-JAN-1987', 750,0, 13);
insert into employee values(7506,'DENNIS', 'LYNN', 'S',671,7839,'15-MAY-1985',2750,0, 23);
insert into employee values(7560,'DUNCAN', 'SARAH', 'S',670,7506,'31-MAY-1985',1250,0, 23);
insert into employee values(7564,'LANGE', 'GREGORY', 'J',670,7506,'01-JUN-1985',1250,300, 23);
insert into employee values(7789,'WEST', 'LIVIA', 'N',670,7506,'04-APR-1985',1500,1000,23);
insert into employee values(7954,'MURRAY', 'JAMES', 'T',667,7506,'16-JAN-1987', 750,0, 23);
insert into employee values(7507,'BAKER', 'LESLIE', 'D',671,7839,'10-JUN-1985',2200,0, 14);
insert into employee values(7609,'LEWIS', 'RICHARD', 'M',668,7507,'16-APR-1985',1800,0, 14);
insert into employee values(7676,'SOMMERS','DENISE', 'D',668,7507,'19-APR-1985',1850,0, 14);
insert into employee values(7566,'JONES', 'TERRY', 'M',671,7839,'02-APR-1985',2975,0, 20);
insert into employee values(7788,'SCOTT', 'DONALD', 'T',669,7566,'09-DEC-1986',3000,0, 20);
insert into employee values(7876,'ADAMS', 'DIANE', 'G',667,7788,'12-JAN-1987',1100,0, 20);
insert into employee values(7902,'FORD', 'JENNIFER','D',669,7566,'03-DEC-1985',3000,0, 20);
insert into employee values(7369,'SMITH', 'JOHN', 'Q',667,7902,'17-DEC-1984', 800,0, 20);
insert into employee values(7569,'ALBERTS','CHRIS', 'L',671,7839,'06-APR-1985',3000,0, 12);
insert into employee values(7799,'FISHER', 'MATTHEW', 'G',669,7569,'12-DEC-1986',3000,0, 12);
insert into employee values(7919,'DOUGLAS','MICHAEL', 'A',667,7799,'04-JAN-1987', 800,0, 12);
insert into employee values(7916,'ROBERTS','GRACE', 'M',669,7569,'04-JAN-1987',2875,0, 12);
insert into employee values(7698,'BLAKE', 'MARION', 'S',671,7839,'01-MAY-1985',2850,0, 30);
insert into employee values(7499,'ALLEN', 'KEVIN', 'J',670,7698,'20-FEB-1985',1600,300, 30);
insert into employee values(7521,'WARD', 'CYNTHIA', 'D',670,7698,'22-FEB-1985',1250,500, 30);
insert into employee values(7654,'MARTIN', 'KENNETH', 'J',670,7698,'28-SEP-1985',1250,1400,30);
insert into employee values(7844,'TURNER', 'MARY', 'A',670,7698,'08-SEP-1985',1500,0, 30);
insert into employee values(7900,'JAMES', 'FRED', 'S',667,7698,'03-DEC-1985', 950,0, 30);
insert into employee values(7782,'CLARK', 'CAROL', 'F',671,7839,'09-JUN-1985',2450,0, 10);
insert into employee values(7934,'MILLER', 'BARBARA', 'M',667,7782,'23-JAN-1986',1300,0, 10);
CREATE TABLE CUSTOMER(
CUSTOMER_ID NUMBER(6,0) NOT NULL,
NAME VARCHAR2(20) NULL,
ADDRESS VARCHAR2(21) NULL,
CITY VARCHAR2(16) NULL,
STATE VARCHAR2(2) NULL,
ZIP_CODE VARCHAR2(9) NULL,
AREA_CODE NUMBER(3,0) NULL,
PHONE_NUMBER NUMBER(7,0) NULL,
SALESPERSON_ID NUMBER(4,0) NULL,
CREDIT_LIMIT NUMBER(9,2) NULL,
CHECK (CUSTOMER_ID IS NOT NULL),
CHECK (SALESPERSON_ID IS NOT NULL),
CHECK (CUSTOMER_ID > 0),
CHECK (STATE = UPPER(STATE)),
CHECK (LENGTH(NVL(ZIP_CODE, '99999')) IN (5, 9)),
PRIMARY KEY (CUSTOMER_ID),
FOREIGN KEY (SALESPERSON_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID)
);
insert into customer values(100,'JOCKSPORTS', '345 VIEWRIDGE', 'BELMONT', 'CA','96711',415,5986609,7844,5000);
insert into customer values(101,'TKB SPORT SHOP', '490 BOLI RD.', 'REDWOOD CITY', 'CA','94061',415,3681223,7521,10000);
insert into customer values(102,'VOLLYRITE', '9722 HAMILTON', 'BURLINGAME', 'CA','95133',415,6443341,7654,7000);
insert into customer values(103,'JUST TENNIS', 'HILLVIEW MALL', 'BURLINGAME', 'CA','97544',415,6779312,7521,3000);
insert into customer values(104,'EVERY MOUNTAIN', '574 SURRY RD.', 'CUPERTINO', 'CA','93301',408,9962323,7499,10000);
insert into customer values(105,'K + T SPORTS', '3476 EL PASEO', 'SANTA CLARA', 'CA','91003',408,3769966,7844,5000);
insert into customer values(106,'SHAPE UP', '908 SEQUOIA', 'PALO ALTO', 'CA','94301',415,3649777,7521,6000);
insert into customer values(107,'WOMENS SPORTS', 'VALCO VILLAGE', 'SUNNYVALE', 'CA','93301',408,9674398,7499,10000);
insert into customer values(108,'NORTH WOODS HEALTH', '98 LONE PINE WAY', 'HIBBING', 'MN','55649',612,5669123,7844,8000);
insert into customer values(201,'STADIUM SPORTS', '47 IRVING PL.', 'NEW YORK', 'NY','10003',212,5555335,7557,10000);
insert into customer values(202,'HOOPS', '2345 ADAMS AVE.', 'LEICESTER', 'MA','01524',508,5557542,7820,5000);
insert into customer values(203,'REBOUND SPORTS', '2 E. 14TH ST.', 'NEW YORK', 'NY','10009',212,5555989,7557,10000);
insert into customer values(204,'THE POWER FORWARD', '1 KNOTS LANDING', 'DALLAS', 'TX','75248',214,5550505,7560,12000);
insert into customer values(205,'POINT GUARD', '20 THURSTON ST.', 'YONKERS', 'NY','10956',914,5554766,7557,3000);
insert into customer values(206,'THE COLISEUM', '5678 WILBUR PL.', 'SCARSDALE', 'NY','10583',914,5550217,7557,6000);
insert into customer values(207,'FAST BREAK', '1000 HERBERT LN.', 'CONCORD', 'MA','01742',508,5551298,7820,7000);
insert into customer values(208,'AL AND BOB''S SPORTS','260 YORKTOWN CT.', 'AUSTIN', 'TX','78731',512,5557631,7560,4000);
insert into customer values(211,'AT BAT', '234 BEACHEM ST.', 'BROOKLINE', 'MA','02146',617,5557385,7820,8000);
insert into customer values(212,'ALL SPORT', '1000 38TH ST.', 'BROOKLYN', 'NY','11210',718,5551739,7600,6000);
insert into customer values(213,'GOOD SPORT', '400 46TH ST.', 'SUNNYSIDE', 'NY','11104',718,5553771,7600,5000);
insert into customer values(214,'AL''S PRO SHOP', '45 SPRUCE ST.', 'SPRING', 'TX','77388',713,5555172,7564,8000);
insert into customer values(215,'BOB''S FAMILY SPORTS','400 E. 23RD', 'HOUSTON', 'TX','77026',713,5558015,7654,8000);
insert into customer values(216,'THE ALL AMERICAN', '547 PRENTICE RD.', 'CHELSEA', 'MA','02150',617,5553047,7820,5000);
insert into customer values(217,'HIT, THROW, AND RUN', '333 WOOD COURT', 'GRAPEVINE', 'TX','76051',817,5552352,7564,6000);
insert into customer values(218,'THE OUTFIELD', '346 GARDEN BLVD.', 'FLUSHING', 'NY','11355',718,5552131,7820,4000);
insert into customer values(221,'WHEELS AND DEALS', '2 MEMORIAL DRIVE', 'HOUSTON', 'TX','77007',713,5554139,7789,10000);
insert into customer values(222,'JUST BIKES', '4000 PARKRIDGE BLVD.','DALLAS', 'TX','75205',214,5558735,7789,4000);
insert into customer values(223,'VELO SPORTS', '23 WHITE ST.', 'MALDEN', 'MA','02148',617,5554983,7820,5000);
insert into customer values(224,'JOE''S BIKE SHOP', '4500 FOX COURT', 'GRAND PRARIE', 'TX','75051',214,5559834,7789,6000);
insert into customer values(225,'BOB''S SWIM, AND RUN','300 HORSECREEK', 'IRVING', 'TX','75039',214,5558388,7789,7000);
insert into customer values(226,'CENTURY SHOP', '8 DAGMAR DR.', 'HUNTINGTON', 'NY','11743',516,5553006,7555,4000);
insert into customer values(227,'THE TOUR', '2500 GARDNER RD.', 'SOMERVILLE', 'MA','02144',617,5556673,7820,5000);
insert into customer values(228 ,'FITNESS FIRST', '5000 85TH ST.', 'JACKSON HEIGHTS','NY','11372',718,5558710,7555,4000);
CREATE TABLE SALES_ORDER(
ORDER_ID NUMBER(4,0) NOT NULL,
ORDER_DATE DATE NULL,
CUSTOMER_ID NUMBER(6,0) NULL,
SHIP_DATE DATE NULL,
TOTAL NUMBER(8,2) NULL,
CHECK (ORDER_ID IS NOT NULL),
CHECK (CUSTOMER_ID IS NOT NULL),
CHECK (TOTAL >= 0),
PRIMARY KEY (ORDER_ID),
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID)
);
insert into sales_order values( 610 , '07-JAN-1991' , 101 , '08-JAN-1991' , 101.4 );
insert into sales_order values( 611 , '11-JAN-1991' , 102 , '11-JAN-1991' , 45 );
insert into sales_order values( 612 , '15-JAN-1991' , 104 , '20-JAN-1991' , 5860 );
insert into sales_order values( 601 , '16-NOV-1990' , 106 , '30-NOV-1990' , 60.8 );
insert into sales_order values( 602 , '05-JUN-1990' , 102 , '20-JUN-1990' , 56 );
insert into sales_order values( 600 , '01-MAY-1990' , 103 , '29-MAY-1990' , 42 );
insert into sales_order values( 604 , '15-JUN-1990' , 106 , '30-JUN-1990' , 642 );
insert into sales_order values( 605 , '14-JUL-1990' , 106 , '30-JUL-1990' , 8374 );
insert into sales_order values( 606 , '14-JUL-1990' , 100 , '30-JUL-1990' , 3.4 );
insert into sales_order values( 609 , '01-AUG-1990' , 100 , '15-AUG-1990' , 102.5 );
insert into sales_order values( 607 , '18-JUL-1990' , 104 , '18-JUL-1990' , 5.6 );
insert into sales_order values( 608 , '25-JUL-1990' , 104 , '25-JUL-1990' , 35.2 );
insert into sales_order values( 603 , '05-JUN-1990' , 102 , '05-JUN-1990' , 224 );
insert into sales_order values( 620 , '12-MAR-1991' , 100 , '12-MAR-1991' , 4450 );
insert into sales_order values( 613 , '01-FEB-1991' , 108 , '01-FEB-1991' , 6400 );
insert into sales_order values( 614 , '01-FEB-1991' , 102 , '05-FEB-1991' , 23940 );
insert into sales_order values( 616 , '03-FEB-1991' , 103 , '10-FEB-1991' , 764 );
insert into sales_order values( 619 , '22-FEB-1991' , 104 , '04-MAR-1991' , 1260 );
insert into sales_order values( 617 , '05-FEB-1991' , 105 , '03-MAR-1991' , 46370 );
insert into sales_order values( 615 , '01-FEB-1991' , 107 , '06-FEB-1991' , 710 );
insert into sales_order values( 618 , '15-FEB-1991' , 102 , '06-MAR-1991' , 3083 );
insert into sales_order values( 621 , '15-MAR-1991' , 100 , '01-APR-1991' , 730 );
insert into sales_order values( 509 , '04-JUN-1989' , 226 , '10-JUN-1989' , 1174 );
insert into sales_order values( 523 , '13-FEB-1990' , 226 , '13-FEB-1990' , 1165 );
insert into sales_order values( 549 , '27-DEC-1990' , 226 , '14-JAN-1991' , 1620 );
insert into sales_order values( 507 , '26-MAY-1989' , 228 , '27-MAY-1989' , 886 );
insert into sales_order values( 516 , '30-SEP-1989' , 228 , '03-OCT-1989' , 1815 );
insert into sales_order values( 553 , '02-FEB-1991' , 228 , '13-FEB-1991' , 4400 );
insert into sales_order values( 526 , '04-MAR-1990' , 221 , '07-MAR-1990' , 7700 );
insert into sales_order values( 543 , '04-SEP-1990' , 221 , '07-SEP-1990' , 8400 );
insert into sales_order values( 555 , '04-MAR-1991' , 221 , '07-MAR-1991' , 8540 );
insert into sales_order values( 559 , '16-NOV-1990' , 222 , '23-APR-1991' , 387.2 );
insert into sales_order values( 528 , '24-MAR-1990' , 224 , '24-MAR-1990' , 3770 );
insert into sales_order values( 531 , '31-MAR-1990' , 224 , '02-APR-1990' , 1400 );
insert into sales_order values( 558 , '31-MAR-1991' , 224 , '02-APR-1991' , 1700 );
insert into sales_order values( 525 , '28-FEB-1990' , 225 , '03-MAR-1990' , 377 );
insert into sales_order values( 552 , '02-FEB-1991' , 223 , '07-FEB-1991' , 555.8 );
insert into sales_order values( 556 , '10-MAR-1991' , 223 , '12-MAR-1991' , 85 );
insert into sales_order values( 560 , '25-APR-1991' , 223 , '25-APR-1991' , 72 );
insert into sales_order values( 565 , '01-JUN-1991' , 227 , '03-JUN-1991' , 4900 );
insert into sales_order values( 574 , '10-OCT-1991' , 201 , '12-OCT-1991' , 1685 );
insert into sales_order values( 576 , '13-OCT-1991' , 201 , '18-OCT-1991' , 2058.9 );
insert into sales_order values( 503 , '25-MAR-1989' , 201 , '06-APR-1989' , 1876 );
insert into sales_order values( 518 , '20-OCT-1989' , 201 , '05-NOV-1989' , 2932.5 );
insert into sales_order values( 517 , '23-OCT-1989' , 201 , '07-NOV-1989' , 784 );
insert into sales_order values( 544 , '11-SEP-1990' , 202 , '15-SEP-1990' , 2358 );
insert into sales_order values( 524 , '22-FEB-1990' , 202 , '04-MAR-1990' , 1979 );
insert into sales_order values( 502 , '10-FEB-1989' , 202 , '23-FEB-1989' , 500 );
insert into sales_order values( 539 , '26-JUN-1990' , 202 , '03-JUL-1990' , 1300 );
insert into sales_order values( 511 , '17-AUG-1989' , 202 , '21-AUG-1989' , 647 );
insert into sales_order values( 512 , '28-AUG-1989' , 203 , '13-SEP-1989' , 428 );
insert into sales_order values( 562 , '04-MAY-1991' , 203 , '19-MAY-1991' , 2044.5 );
insert into sales_order values( 529 , '02-APR-1990' , 203 , '05-APR-1990' , 1264.7 );
insert into sales_order values( 563 , '25-MAY-1991' , 204 , '26-MAY-1991' , 889 );
insert into sales_order values( 568 , '13-JUL-1991' , 204 , '21-JUL-1991' , 1217.4 );
insert into sales_order values( 504 , '11-APR-1989' , 204 , '12-APR-1989' , 1434.7 );
insert into sales_order values( 538 , '23-JUN-1990' , 204 , '26-JUN-1990' , 741 );
insert into sales_order values( 535 , '28-MAY-1990' , 204 , '09-JUN-1990' , 810 );
insert into sales_order values( 578 , '19-NOV-1991' , 204 , '04-DEC-1991' , 2275.6 );
insert into sales_order values( 534 , '11-MAY-1990' , 206 , '15-MAY-1990' , 420 );
insert into sales_order values( 536 , '21-MAY-1990' , 206 , '06-JUN-1990' , 2135.6 );
insert into sales_order values( 572 , '19-AUG-1991' , 206 , '24-AUG-1991' , 1200.5 );
insert into sales_order values( 514 , '05-SEP-1989' , 207 , '16-SEP-1989' , 1140 );
insert into sales_order values( 521 , '20-NOV-1989' , 207 , '23-NOV-1989' , 896.9 );
insert into sales_order values( 551 , '22-JAN-1991' , 208 , '06-FEB-1991' , 1142 );
insert into sales_order values( 513 , '06-SEP-1989' , 208 , '14-SEP-1989' , 1497 );
insert into sales_order values( 508 , '26-MAY-1989' , 208 , '08-JUN-1989' , 1080 );
insert into sales_order values( 515 , '19-SEP-1989' , 208 , '26-SEP-1989' , 1428.5 );
insert into sales_order values( 542 , '11-AUG-1990' , 208 , '23-AUG-1990' , 2409 );
insert into sales_order values( 573 , '10-OCT-1991' , 201 , '12-OCT-1991' , 1627 );
insert into sales_order values( 566 , '09-JUN-1991' , 201 , '12-JUN-1991' , 3389.2 );
insert into sales_order values( 520 , '16-NOV-1989' , 201 , '19-NOV-1989' , 341.6 );
insert into sales_order values( 519 , '20-OCT-1989' , 201 , '05-NOV-1989' , 955 );
insert into sales_order values( 575 , '04-OCT-1991' , 201 , '17-OCT-1991' , 684 );
insert into sales_order values( 547 , '16-OCT-1990' , 202 , '27-OCT-1990' , 984.4 );
insert into sales_order values( 540 , '15-JUL-1990' , 202 , '17-JUL-1990' , 861.2 );
insert into sales_order values( 567 , '05-JUL-1991' , 202 , '07-JUL-1991' , 200 );
insert into sales_order values( 570 , '17-JUL-1991' , 202 , '24-JUL-1991' , 663.6 );
insert into sales_order values( 571 , '02-AUG-1991' , 202 , '12-AUG-1991' , 1095.6 );
insert into sales_order values( 541 , '08-AUG-1990' , 203 , '18-AUG-1990' , 400 );
insert into sales_order values( 532 , '08-APR-1990' , 203 , '21-APR-1990' , 1295.4 );
insert into sales_order values( 527 , '27-FEB-1990' , 204 , '14-MAR-1990' , 3054.4 );
insert into sales_order values( 501 , '06-JAN-1989' , 204 , '11-JAN-1989' , 216 );
insert into sales_order values( 564 , '25-MAY-1991' , 204 , '26-MAY-1991' , 898.8 );
insert into sales_order values( 537 , '14-JUN-1990' , 204 , '26-JUN-1990' , 672.9 );
insert into sales_order values( 522 , '07-JAN-1990' , 204 , '10-JAN-1990' , 2578.8 );
insert into sales_order values( 554 , '18-FEB-1991' , 204 , '22-FEB-1991' , 282.8 );
insert into sales_order values( 569 , '16-JUL-1991' , 205 , '23-JUL-1991' , 2073 );
insert into sales_order values( 550 , '27-JAN-1991' , 205 , '07-FEB-1991' , 2356 );
insert into sales_order values( 548 , '26-NOV-1990' , 205 , '12-DEC-1990' , 666.9 );
insert into sales_order values( 505 , '07-APR-1989' , 206 , '22-APR-1989' , 650 );
insert into sales_order values( 577 , '06-OCT-1991' , 206 , '20-OCT-1991' , 1265.75 );
insert into sales_order values( 533 , '28-APR-1990' , 206 , '02-MAY-1990' , 1122.1 );
insert into sales_order values( 561 , '20-APR-1991' , 207 , '07-MAY-1991' , 2558.3 );
insert into sales_order values( 506 , '27-APR-1989' , 208 , '10-MAY-1989' , 2600.4 );
insert into sales_order values( 530 , '03-APR-1990' , 208 , '07-APR-1990' , 3026.5 );
insert into sales_order values( 545 , '06-OCT-1990' , 208 , '13-OCT-1990' , 475 );
insert into sales_order values( 557 , '08-MAR-1991' , 208 , '12-MAR-1991' , 2461.8 );
insert into sales_order values( 546 , '17-OCT-1990' , 208 , '23-OCT-1990' , 3663 );
insert into sales_order values( 510 , '18-JUL-1989' , 208 , '21-JUL-1989' , 1336.6 );
CREATE TABLE PRODUCT(
PRODUCT_ID NUMBER(6,0) NOT NULL,
DESCRIPTION VARCHAR2(30) NULL,
CHECK (PRODUCT_ID IS NOT NULL),
PRIMARY KEY (PRODUCT_ID)
);
insert into PRODUCT values( 100860 , 'ACE TENNIS RACKET I' );
insert into PRODUCT values( 100861 , 'ACE TENNIS RACKET II' );
insert into PRODUCT values( 100870 , 'ACE TENNIS BALLS-3 PACK' );
insert into PRODUCT values( 100871 , 'ACE TENNIS BALLS-6 PACK' );
insert into PRODUCT values( 100890 , 'ACE TENNIS NET' );
insert into PRODUCT values( 101860 , 'SP TENNIS RACKET' );
insert into PRODUCT values( 101863 , 'SP JUNIOR RACKET' );
insert into PRODUCT values( 102130 , 'RH: "GUIDE TO TENNIS"' );
insert into PRODUCT values( 200376 , 'SB ENERGY BAR-6 PACK' );
insert into PRODUCT values( 200380 , 'SB VITA SNACK-6 PACK' );
insert into PRODUCT values( 103120 , 'WIFF SOFTBALL BAT I' );
insert into PRODUCT values( 103121 , 'WIFF SOFTBALL BAT II' );
insert into PRODUCT values( 103130 , 'WIFF SOFTBALL, SMALL' );
insert into PRODUCT values( 103131 , 'WIFF SOFTBALL, LARGE' );
insert into PRODUCT values( 103140 , 'WIFF SOFTBALL MITT (LH)' );
insert into PRODUCT values( 103141 , 'WIFF SOFTBALL MITT (RH)' );
insert into PRODUCT values( 102132 , 'RH: "GUIDE TO SOFTBALL"' );
insert into PRODUCT values( 104350 , 'DUNK BASKETBALL INDOOR' );
insert into PRODUCT values( 104351 , 'DUNK BASKETBALL OUTDOOR' );
insert into PRODUCT values( 104352 , 'DUNK BASKETBALL PROFESSIONAL' );
insert into PRODUCT values( 104360 , 'DUNK HOOP' );
insert into PRODUCT values( 104361 , 'DUNK HOOP W/FIBERGLASS BOARD' );
insert into PRODUCT values( 104362 , 'DUNK NETS - RAINBOW' );
insert into PRODUCT values( 102134 , 'RH: "GUIDE TO BASKETBALL"' );
insert into PRODUCT values( 105123 , 'YELLOW JERSEY BICYCLE HELMET' );
insert into PRODUCT values( 105124 , 'YELLOW JERSEY BICYCLE GLOVES' );
insert into PRODUCT values( 105125 , 'YELLOW JERSEY WATER BOTTLE' );
insert into PRODUCT values( 105126 , 'YELLOW JERSEY BOTTLE CAGE' );
insert into PRODUCT values( 105127 , 'YELLOW JERSEY FRAME PUMP' );
insert into PRODUCT values( 105128 , 'YELLOW JERSEY SADDLE PACK' );
insert into PRODUCT values( 102136 , 'RH: "GUIDE TO CYCLING"' );
CREATE TABLE ITEM(
ORDER_ID NUMBER(4,0) NOT NULL,
ITEM_ID NUMBER(4,0) NOT NULL,
PRODUCT_ID NUMBER(6,0) NULL,
ACTUAL_PRICE NUMBER(8,2) NULL,
QUANTITY NUMBER(8,0) NULL,
TOTAL NUMBER(8,2) NULL,
CHECK (ORDER_ID IS NOT NULL),
CHECK (ITEM_ID IS NOT NULL),
PRIMARY KEY (ORDER_ID, ITEM_ID),
FOREIGN KEY (ORDER_ID) REFERENCES SALES_ORDER(ORDER_ID),
FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCT(PRODUCT_ID)
);
insert into item values( 600 , 1 , 100861 , 42 , 1 , 42 );
insert into item values( 610 , 3 , 100890 , 58 , 1 , 58 );
insert into item values( 611 , 1 , 100861 , 45 , 1 , 45 );
insert into item values( 612 , 1 , 100860 , 30 , 100 , 3000 );
insert into item values( 601 , 1 , 200376 , 2.4 , 12 , 28.8 );
insert into item values( 601 , 2 , 100860 , 32 , 1 , 32 );
insert into item values( 602 , 1 , 100870 , 2.8 , 20 , 56 );
insert into item values( 604 , 1 , 100890 , 58 , 3 , 174 );
insert into item values( 604 , 2 , 100861 , 42 , 2 , 84 );
insert into item values( 604 , 3 , 100860 , 32 , 12 , 384 );
insert into item values( 603 , 1 , 100860 , 32 , 7 , 224 );
insert into item values( 610 , 1 , 100860 , 35 , 1 , 35 );
insert into item values( 610 , 2 , 100870 , 2.8 , 3 , 8.4 );
insert into item values( 613 , 4 , 200376 , 2.2 , 200 , 440 );
insert into item values( 614 , 1 , 100860 , 35 , 444 , 15540 );
insert into item values( 614 , 2 , 100870 , 2.8 , 1000 , 2800 );
insert into item values( 612 , 2 , 100861 , 40.5 , 20 , 810 );
insert into item values( 612 , 3 , 101863 , 10 , 150 , 1500 );
insert into item values( 620 , 1 , 100860 , 35 , 10 , 350 );
insert into item values( 620 , 2 , 200376 , 2.4 , 1000 , 2400 );
insert into item values( 620 , 3 , 102130 , 3.4 , 500 , 1700 );
insert into item values( 613 , 1 , 100871 , 5.6 , 100 , 560 );
insert into item values( 613 , 2 , 101860 , 24 , 200 , 4800 );
insert into item values( 613 , 3 , 200380 , 4 , 150 , 600 );
insert into item values( 619 , 3 , 102130 , 3.4 , 100 , 340 );
insert into item values( 617 , 1 , 100860 , 35 , 50 , 1750 );
insert into item values( 617 , 2 , 100861 , 45 , 100 , 4500 );
insert into item values( 614 , 3 , 100871 , 5.6 , 1000 , 5600 );
insert into item values( 616 , 1 , 100861 , 45 , 10 , 450 );
insert into item values( 616 , 2 , 100870 , 2.8 , 50 , 140 );
insert into item values( 616 , 3 , 100890 , 58 , 2 , 116 );
insert into item values( 616 , 4 , 102130 , 3.4 , 10 , 34 );
insert into item values( 616 , 5 , 200376 , 2.4 , 10 , 24 );
insert into item values( 619 , 1 , 200380 , 4 , 100 , 400 );
insert into item values( 619 , 2 , 200376 , 2.4 , 100 , 240 );
insert into item values( 615 , 1 , 100861 , 45 , 4 , 180 );
insert into item values( 607 , 1 , 100871 , 5.6 , 1 , 5.6 );
insert into item values( 615 , 2 , 100870 , 2.8 , 100 , 280 );
insert into item values( 617 , 3 , 100870 , 2.8 , 500 , 1400 );
insert into item values( 617 , 4 , 100871 , 5.6 , 500 , 2800 );
insert into item values( 617 , 5 , 100890 , 58 , 500 , 29000 );
insert into item values( 617 , 6 , 101860 , 24 , 100 , 2400 );
insert into item values( 617 , 7 , 101863 , 12.5 , 200 , 2500 );
insert into item values( 617 , 8 , 102130 , 3.4 , 100 , 340 );
insert into item values( 617 , 9 , 200376 , 2.4 , 200 , 480 );
insert into item values( 617 , 10 , 200380 , 4 , 300 , 1200 );
insert into item values( 609 , 2 , 100870 , 2.5 , 5 , 12.5 );
insert into item values( 609 , 3 , 100890 , 50 , 1 , 50 );
insert into item values( 618 , 1 , 100860 , 35 , 23 , 805 );
insert into item values( 618 , 2 , 100861 , 45 , 50 , 2250 );
insert into item values( 618 , 3 , 100870 , 2.8 , 10 , 28 );
insert into item values( 621 , 1 , 100861 , 45 , 10 , 450 );
insert into item values( 621 , 2 , 100870 , 2.8 , 100 , 280 );
insert into item values( 615 , 3 , 100871 , 5 , 50 , 250 );
insert into item values( 608 , 1 , 101860 , 24 , 1 , 24 );
insert into item values( 608 , 2 , 100871 , 5.6 , 2 , 11.2 );
insert into item values( 609 , 1 , 100861 , 40 , 1 , 40 );
insert into item values( 606 , 1 , 102130 , 3.4 , 1 , 3.4 );
insert into item values( 605 , 1 , 100861 , 45 , 100 , 4500 );
insert into item values( 605 , 2 , 100870 , 2.8 , 500 , 1400 );
insert into item values( 605 , 3 , 100890 , 58 , 5 , 290 );
insert into item values( 605 , 4 , 101860 , 24 , 50 , 1200 );
insert into item values( 605 , 5 , 101863 , 9.5 , 100 , 950 );
insert into item values( 605 , 6 , 102130 , 3.4 , 10 , 34 );
insert into item values( 612 , 4 , 100871 , 5.5 , 100 , 550 );
insert into item values( 619 , 4 , 100871 , 5.6 , 50 , 280 );
insert into item values( 509 , 1 , 105123 , 35 , 30 , 1050 );
insert into item values( 509 , 2 , 105124 , 9 , 10 , 90 );
insert into item values( 509 , 3 , 102136 , 3.4 , 10 , 34 );
insert into item values( 523 , 1 , 102136 , 3.4 , 10 , 34 );
insert into item values( 523 , 2 , 105123 , 37.7 , 30 , 1131 );
insert into item values( 549 , 1 , 105123 , 38 , 5 , 190 );
insert into item values( 549 , 2 , 105127 , 6 , 30 , 180 );
insert into item values( 549 , 3 , 105125 , 3 , 200 , 600 );
insert into item values( 549 , 4 , 105124 , 13 , 50 , 650 );
insert into item values( 507 , 1 , 105123 , 35.3 , 20 , 706 );
insert into item values( 507 , 2 , 105124 , 9 , 20 , 180 );
insert into item values( 516 , 1 , 105124 , 9 , 60 , 540 );
insert into item values( 516 , 2 , 102136 , 3.2 , 250 , 800 );
insert into item values( 516 , 3 , 105125 , 1.9 , 250 , 475 );
insert into item values( 553 , 1 , 105127 , 6 , 500 , 3000 );
insert into item values( 553 , 2 , 200376 , 1.75 , 800 , 1400 );
insert into item values( 526 , 1 , 105123 , 32 , 100 , 3200 );
insert into item values( 526 , 2 , 105124 , 9 , 500 , 4500 );
insert into item values( 543 , 1 , 105123 , 34 , 100 , 3400 );
insert into item values( 543 , 2 , 105124 , 10 , 500 , 5000 );
insert into item values( 555 , 1 , 105123 , 34 , 100 , 3400 );
insert into item values( 555 , 2 , 105124 , 10 , 500 , 5000 );
insert into item values( 555 , 3 , 102136 , 2.8 , 50 , 140 );
insert into item values( 559 , 1 , 105123 , 40 , 5 , 200 );
insert into item values( 559 , 2 , 105124 , 15 , 5 , 75 );
insert into item values( 559 , 3 , 105127 , 6 , 5 , 30 );
insert into item values( 559 , 4 , 102136 , 3.4 , 3 , 10.2 );
insert into item values( 559 , 5 , 200376 , 2.4 , 30 , 72 );
insert into item values( 528 , 1 , 105123 , 37.7 , 100 , 3770 );
insert into item values( 531 , 1 , 105124 , 11 , 100 , 1100 );
insert into item values( 531 , 2 , 102136 , 3 , 100 , 300 );
insert into item values( 558 , 1 , 105124 , 14 , 100 , 1400 );
insert into item values( 558 , 2 , 102136 , 3 , 100 , 300 );
insert into item values( 525 , 1 , 105123 , 37.7 , 10 , 377 );
insert into item values( 552 , 1 , 105123 , 40 , 10 , 400 );
insert into item values( 552 , 2 , 105124 , 15 , 10 , 150 );
insert into item values( 552 , 3 , 102136 , 3.4 , 1 , 3.4 );
insert into item values( 552 , 4 , 200376 , 2.4 , 1 , 2.4 );
insert into item values( 556 , 1 , 102136 , 3.4 , 25 , 85 );
insert into item values( 560 , 1 , 200376 , 2.4 , 30 , 72 );
insert into item values( 565 , 1 , 105123 , 37 , 100 , 3700 );
insert into item values( 565 , 2 , 105124 , 12 , 100 , 1200 );
insert into item values( 574 , 1 , 104350 , 41.8 , 25 , 1045 );
insert into item values( 574 , 2 , 200380 , 3.2 , 200 , 640 );
insert into item values( 576 , 1 , 104350 , 44 , 10 , 440 );
insert into item values( 576 , 2 , 104351 , 26 , 10 , 260 );
insert into item values( 576 , 3 , 104362 , 4.25 , 170 , 722.5 );
insert into item values( 576 , 4 , 200376 , 2.16 , 90 , 194.4 );
insert into item values( 576 , 5 , 200380 , 3.4 , 130 , 442 );
insert into item values( 503 , 1 , 104350 , 38 , 30 , 1140 );
insert into item values( 503 , 2 , 104351 , 23.6 , 10 , 236 );
insert into item values( 503 , 3 , 104352 , 50 , 10 , 500 );
insert into item values( 518 , 1 , 104350 , 38 , 25 , 950 );
insert into item values( 518 , 2 , 104351 , 23.6 , 20 , 472 );
insert into item values( 518 , 3 , 104360 , 36 , 20 , 720 );
insert into item values( 518 , 4 , 104362 , 4.25 , 170 , 722.5 );
insert into item values( 518 , 5 , 102134 , 3.4 , 20 , 68 );
insert into item values( 517 , 1 , 104352 , 50 , 15 , 750 );
insert into item values( 517 , 2 , 102134 , 3.4 , 10 , 34 );
insert into item values( 544 , 1 , 104350 , 44 , 15 , 660 );
insert into item values( 544 , 2 , 104351 , 26 , 15 , 390 );
insert into item values( 544 , 3 , 104352 , 58.3 , 10 , 583 );
insert into item values( 544 , 4 , 104361 , 50 , 10 , 500 );
insert into item values( 544 , 5 , 104362 , 4.5 , 50 , 225 );
insert into item values( 524 , 1 , 104350 , 42 , 10 , 420 );
insert into item values( 524 , 2 , 104351 , 23.56 , 35 , 824.6 );
insert into item values( 524 , 3 , 104362 , 4.25 , 150 , 637.5 );
insert into item values( 524 , 4 , 102134 , 3.23 , 30 , 96.9 );
insert into item values( 502 , 1 , 104352 , 50 , 10 , 500 );
insert into item values( 539 , 1 , 104351 , 26 , 20 , 520 );
insert into item values( 539 , 2 , 104360 , 39 , 20 , 780 );
insert into item values( 511 , 1 , 104351 , 23.6 , 15 , 354 );
insert into item values( 511 , 2 , 104362 , 4.5 , 50 , 225 );
insert into item values( 511 , 3 , 102134 , 3.4 , 20 , 68 );
insert into item values( 512 , 1 , 104360 , 36 , 10 , 360 );
insert into item values( 512 , 2 , 102134 , 3.4 , 20 , 68 );
insert into item values( 562 , 1 , 104351 , 24.7 , 25 , 617.5 );
insert into item values( 562 , 2 , 104352 , 58.3 , 15 , 874.5 );
insert into item values( 562 , 3 , 104362 , 4.25 , 130 , 552.5 );
insert into item values( 529 , 1 , 104350 , 39.89 , 30 , 1196.7 );
insert into item values( 529 , 2 , 102134 , 3.4 , 20 , 68 );
insert into item values( 563 , 1 , 104352 , 58.3 , 10 , 583 );
insert into item values( 563 , 2 , 200376 , 2.04 , 150 , 306 );
insert into item values( 568 , 1 , 104351 , 24.7 , 30 , 741 );
insert into item values( 568 , 2 , 200376 , 2.04 , 110 , 224.4 );
insert into item values( 568 , 3 , 200380 , 3.6 , 70 , 252 );
insert into item values( 504 , 1 , 104350 , 40 , 10 , 400 );
insert into item values( 504 , 2 , 104351 , 22.42 , 35 , 784.7 );
insert into item values( 504 , 3 , 104352 , 50 , 5 , 250 );
insert into item values( 538 , 1 , 104351 , 24.7 , 30 , 741 );
insert into item values( 535 , 1 , 104352 , 54 , 15 , 810 );
insert into item values( 578 , 1 , 104350 , 41.8 , 40 , 1672 );
insert into item values( 578 , 2 , 200376 , 2.04 , 190 , 387.6 );
insert into item values( 578 , 3 , 200380 , 3.6 , 60 , 216 );
insert into item values( 534 , 1 , 104350 , 42 , 10 , 420 );
insert into item values( 536 , 1 , 104350 , 39.89 , 40 , 1595.6 );
insert into item values( 536 , 2 , 104352 , 54 , 10 , 540 );
insert into item values( 572 , 1 , 104351 , 24.7 , 25 , 617.5 );
insert into item values( 572 , 2 , 104352 , 58.3 , 10 , 583 );
insert into item values( 514 , 1 , 104350 , 38 , 30 , 1140 );
insert into item values( 521 , 1 , 104350 , 40 , 20 , 800 );
insert into item values( 521 , 2 , 102134 , 3.23 , 30 , 96.9 );
insert into item values( 551 , 1 , 104350 , 44 , 10 , 440 );
insert into item values( 551 , 2 , 104361 , 50 , 5 , 250 );
insert into item values( 551 , 3 , 102134 , 3.4 , 20 , 68 );
insert into item values( 551 , 4 , 200376 , 1.92 , 200 , 384 );
insert into item values( 513 , 1 , 104350 , 40 , 15 , 600 );
insert into item values( 513 , 2 , 104351 , 23.6 , 20 , 472 );
insert into item values( 513 , 3 , 104362 , 4.25 , 100 , 425 );
insert into item values( 508 , 1 , 104360 , 36 , 20 , 720 );
insert into item values( 508 , 2 , 104362 , 4.5 , 80 , 360 );
insert into item values( 515 , 1 , 104350 , 40 , 20 , 800 );
insert into item values( 515 , 2 , 104351 , 22.42 , 25 , 560.5 );
insert into item values( 515 , 3 , 102134 , 3.4 , 20 , 68 );
insert into item values( 542 , 1 , 104350 , 41.8 , 25 , 1045 );
insert into item values( 542 , 2 , 104360 , 39 , 20 , 780 );
insert into item values( 542 , 3 , 104361 , 50 , 11 , 550 );
insert into item values( 542 , 4 , 102134 , 3.4 , 10 , 34 );
insert into item values( 573 , 1 , 103120 , 22.5 , 50 , 1125 );
insert into item values( 573 , 2 , 103131 , 4.04 , 50 , 202 );
insert into item values( 573 , 3 , 103141 , 20 , 15 , 300 );
insert into item values( 566 , 1 , 103120 , 23.75 , 40 , 950 );
insert into item values( 566 , 2 , 103121 , 27 , 50 , 1350 );
insert into item values( 566 , 3 , 103130 , 3.77 , 60 , 226.2 );
insert into item values( 566 , 4 , 103131 , 3.9 , 170 , 663 );
insert into item values( 566 , 5 , 103141 , 20 , 10 , 200 );
insert into item values( 520 , 1 , 103130 , 4 , 10 , 40 );
insert into item values( 520 , 2 , 103131 , 3.77 , 80 , 301.6 );
insert into item values( 519 , 1 , 103130 , 3.5 , 110 , 385 );
insert into item values( 519 , 2 , 103140 , 19 , 30 , 570 );
insert into item values( 575 , 1 , 103140 , 19 , 30 , 570 );
insert into item values( 575 , 2 , 200380 , 3.8 , 30 , 114 );
insert into item values( 547 , 1 , 103130 , 3.77 , 80 , 301.6 );
insert into item values( 547 , 2 , 103131 , 4.04 , 70 , 282.8 );
insert into item values( 547 , 3 , 103140 , 20 , 15 , 300 );
insert into item values( 547 , 4 , 103141 , 20 , 5 , 100 );
insert into item values( 540 , 1 , 103130 , 3.98 , 40 , 159.2 );
insert into item values( 540 , 2 , 103131 , 3.9 , 180 , 702 );
insert into item values( 567 , 1 , 103140 , 20 , 10 , 200 );
insert into item values( 570 , 1 , 103131 , 4.04 , 90 , 363.6 );
insert into item values( 570 , 2 , 103140 , 20 , 15 , 300 );
insert into item values( 571 , 1 , 103131 , 4.04 , 70 , 282.8 );
insert into item values( 571 , 2 , 103140 , 19 , 25 , 475 );
insert into item values( 571 , 3 , 102132 , 3.4 , 15 , 51 );
insert into item values( 571 , 4 , 200376 , 2.16 , 80 , 172.8 );
insert into item values( 571 , 5 , 200380 , 3.8 , 30 , 114 );
insert into item values( 541 , 1 , 103140 , 20 , 10 , 200 );
insert into item values( 541 , 2 , 103141 , 20 , 10 , 200 );
insert into item values( 532 , 1 , 103120 , 21.59 , 60 , 1295.4 );
insert into item values( 527 , 1 , 103120 , 21.59 , 60 , 1295.4 );
insert into item values( 527 , 2 , 103121 , 27.35 , 40 , 1094 );
insert into item values( 527 , 3 , 103140 , 19 , 35 , 665 );
insert into item values( 501 , 1 , 103130 , 3.6 , 60 , 216 );
insert into item values( 564 , 1 , 103130 , 3.77 , 80 , 301.6 );
insert into item values( 564 , 2 , 103131 , 3.9 , 120 , 468 );
insert into item values( 564 , 3 , 102132 , 3.23 , 40 , 129.2 );
insert into item values( 537 , 1 , 103130 , 3.6 , 160 , 576 );
insert into item values( 537 , 2 , 102132 , 3.23 , 30 , 96.9 );
insert into item values( 522 , 1 , 103120 , 21.59 , 80 , 1727.2 );
insert into item values( 522 , 2 , 103121 , 28.8 , 10 , 288 );
insert into item values( 522 , 3 , 103131 , 4.04 , 90 , 363.6 );
insert into item values( 522 , 4 , 103141 , 20 , 10 , 200 );
insert into item values( 554 , 1 , 103131 , 4.04 , 70 , 282.8 );
insert into item values( 569 , 1 , 103120 , 22.5 , 50 , 1125 );
insert into item values( 569 , 2 , 103130 , 3.6 , 180 , 648 );
insert into item values( 569 , 3 , 103141 , 20 , 15 , 300 );
insert into item values( 550 , 1 , 103120 , 22.5 , 60 , 1350 );
insert into item values( 550 , 2 , 103140 , 19 , 45 , 855 );
insert into item values( 550 , 3 , 103141 , 20 , 5 , 100 );
insert into item values( 550 , 4 , 102132 , 3.4 , 15 , 51 );
insert into item values( 548 , 1 , 103140 , 19 , 30 , 570 );
insert into item values( 548 , 2 , 102132 , 3.23 , 30 , 96.9 );
insert into item values( 505 , 1 , 103130 , 3.5 , 100 , 350 );
insert into item values( 505 , 2 , 103140 , 20 , 15 , 300 );
insert into item values( 577 , 1 , 103121 , 30 , 20 , 600 );
insert into item values( 577 , 2 , 103131 , 3.9 , 150 , 585 );
insert into item values( 577 , 3 , 102132 , 3.23 , 25 , 80.75 );
insert into item values( 533 , 1 , 103121 , 27.35 , 30 , 820.5 );
insert into item values( 533 , 2 , 103130 , 3.77 , 80 , 301.6 );
insert into item values( 561 , 1 , 103120 , 22.5 , 80 , 1800 );
insert into item values( 561 , 2 , 103130 , 3.77 , 70 , 263.9 );
insert into item values( 561 , 3 , 103141 , 20 , 15 , 300 );
insert into item values( 561 , 4 , 200376 , 2.16 , 90 , 194.4 );
insert into item values( 506 , 1 , 103120 , 20.88 , 80 , 1670.4 );
insert into item values( 506 , 2 , 103130 , 3.5 , 180 , 630 );
insert into item values( 506 , 3 , 103141 , 20 , 15 , 300 );
insert into item values( 530 , 1 , 103121 , 25.91 , 50 , 1295.5 );
insert into item values( 530 , 2 , 103130 , 3.6 , 200 , 720 );
insert into item values( 530 , 3 , 103140 , 19 , 40 , 760 );
insert into item values( 530 , 4 , 103141 , 20 , 10 , 200 );
insert into item values( 530 , 5 , 102132 , 3.4 , 15 , 51 );
insert into item values( 545 , 1 , 103140 , 19 , 25 , 475 );
insert into item values( 557 , 1 , 103120 , 23.75 , 40 , 950 );
insert into item values( 557 , 2 , 103121 , 30 , 10 , 300 );
insert into item values( 557 , 3 , 103140 , 19 , 35 , 665 );
insert into item values( 557 , 4 , 200376 , 2.16 , 80 , 172.8 );
insert into item values( 557 , 5 , 200380 , 3.4 , 110 , 374 );
insert into item values( 546 , 1 , 103120 , 22.5 , 50 , 1125 );
insert into item values( 546 , 2 , 103121 , 30 , 20 , 600 );
insert into item values( 546 , 3 , 103130 , 3.6 , 120 , 432 );
insert into item values( 546 , 4 , 103131 , 3.9 , 140 , 546 );
insert into item values( 546 , 5 , 103140 , 19 , 40 , 760 );
insert into item values( 546 , 6 , 103141 , 20 , 10 , 200 );
insert into item values( 510 , 1 , 103120 , 20.88 , 60 , 1252.8 );
insert into item values( 510 , 2 , 103131 , 4.19 , 20 , 83.8 );
CREATE TABLE PRICE(
PRODUCT_ID NUMBER(6,0) NOT NULL,
LIST_PRICE NUMBER(8,2) NULL,
MIN_PRICE NUMBER(8,2) NULL,
START_DATE DATE NOT NULL,
END_DATE DATE NULL,
CHECK (PRODUCT_ID IS NOT NULL),
CHECK (START_DATE IS NOT NULL),
CHECK (LIST_PRICE IS NULL OR MIN_PRICE IS NULL OR MIN_PRICE <= LIST_PRICE),
CHECK (END_DATE IS NULL OR START_DATE <= END_DATE),
PRIMARY KEY (PRODUCT_ID, START_DATE),
FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCT(PRODUCT_ID)
);
insert into price values( 100871 , 5 , 3.20 , '01-JAN-1989' , '01-DEC-1989' );
insert into price values( 100890 , 58 , 46.40 , '01-JAN-1989' , '' );
insert into price values( 100890 , 54 , 40.50 , '01-JUN-1988' , '31-DEC-1988' );
insert into price values( 100860 , 35 , 28.00 , '01-JUN-1990' , '' );
insert into price values( 100860 , 32 , 25.60 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 100860 , 30 , 24.00 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 100861 , 45 , 36.00 , '01-JUN-1990' , '' );
insert into price values( 100861 , 42 , 33.60 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 100861 , 39 , 31.20 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 100870 , 3 , 2.40 , '01-JAN-1990' , '' );
insert into price values( 100870 , 2 , 1.90 , '01-JAN-1989' , '01-DEC-1989' );
insert into price values( 100871 , 6 , 4.80 , '01-JAN-1990' , '' );
insert into price values( 101860 , 24 , 18.00 , '15-FEB-1989' , '' );
insert into price values( 101863 , 13 , 9.40 , '15-FEB-1989' , '' );
insert into price values( 102130 , 3 , 2.80 , '18-AUG-1989' , '' );
insert into price values( 200376 , 2 , 1.75 , '15-NOV-1990' , '' );
insert into price values( 200380 , 4 , 3.20 , '15-NOV-1990' , '' );
insert into price values( 103120 , 23 , 18.60 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 103120 , 24 , 19.20 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 103120 , 25 , 20.00 , '01-JUN-1990' , '' );
insert into price values( 103121 , 28 , 22.30 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 103121 , 29 , 23.00 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 103121 , 30 , 24.00 , '01-JUN-1990' , '' );
insert into price values( 103130 , 4 , 3.50 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 103130 , 4 , 3.60 , '01-JAN-1990' , '' );
insert into price values( 103131 , 4 , 3.60 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 103131 , 5 , 3.90 , '01-JAN-1990' , '' );
insert into price values( 103140 , 20 , 15.00 , '15-FEB-1989' , '' );
insert into price values( 103141 , 20 , 15.00 , '15-FEB-1989' , '' );
insert into price values( 102132 , 3 , 2.80 , '18-AUG-1989' , '' );
insert into price values( 104350 , 40 , 32.00 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 104350 , 42 , 33.60 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 104350 , 44 , 35.30 , '01-JUN-1990' , '' );
insert into price values( 104351 , 24 , 18.90 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 104351 , 25 , 19.80 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 104351 , 26 , 20.80 , '01-JUN-1990' , '' );
insert into price values( 104352 , 50 , 35.00 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 104352 , 54 , 37.80 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 104352 , 58 , 40.80 , '01-JUN-1990' , '' );
insert into price values( 104360 , 36 , 29.50 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 104360 , 39 , 32.00 , '01-JAN-1990' , '' );
insert into price values( 104361 , 47 , 33.00 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 104361 , 50 , 35.00 , '01-JAN-1990' , '' );
insert into price values( 104362 , 5 , 4.00 , '15-FEB-1989' , '' );
insert into price values( 102134 , 3 , 2.80 , '18-AUG-1989' , '' );
insert into price values( 105123 , 36 , 29.00 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 105123 , 38 , 32.00 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 105123 , 40 , 34.00 , '01-JUN-1990' , '' );
insert into price values( 105124 , 10 , 7.60 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 105124 , 12 , 9.00 , '01-JAN-1990' , '31-MAY-1990' );
insert into price values( 105124 , 15 , 10.00 , '01-JUN-1990' , '' );
insert into price values( 105125 , 2 , 1.70 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 105125 , 3 , 2.60 , '01-JAN-1990' , '' );
insert into price values( 105126 , 5 , 4.30 , '01-JAN-1989' , '31-DEC-1989' );
insert into price values( 105126 , 6 , 5.00 , '01-JAN-1990' , '' );
insert into price values( 105127 , 6 , 5.00 , '15-NOV-1990' , '' );
insert into price values( 105128 , 10 , 8.00 , '15-NOV-1990' , '' );
insert into price values( 102136 , 3 , 2.80 , '18-AUG-1989' , '' );
CREATE TABLE SALARY_GRADE(
GRADE_ID NUMBER(3,0) NOT NULL,
LOWER_BOUND NUMBER(7,2) NULL,
UPPER_BOUND NUMBER(7,2) NULL,
CHECK (GRADE_ID IS NOT NULL),
CHECK ((LOWER_BOUND IS NULL AND UPPER_BOUND IS NOT NULL)
OR (LOWER_BOUND IS NOT NULL AND UPPER_BOUND IS NULL)
OR (LOWER_BOUND <= UPPER_BOUND)),
PRIMARY KEY (GRADE_ID)
);
insert into salary_grade values( 1 , 700 , 1200 );
insert into salary_grade values( 2 , 1201 , 1400 );
insert into salary_grade values( 3 , 1401 , 2000 );
insert into salary_grade values( 4 , 2001 , 3000 );
insert into salary_grade values( 5 , 3001 , 9999 );
commit;
Приложение 2. Содержание таблиц предметной области DEMO.
demo@10g> select * from LOCATION;
LOCATION_ID REGIONAL_GROUP
----------- --------------------
122 NEW YORK
124 DALLAS
123 CHICAGO
167 BOSTON
demo@10g> select * from DEPARTMENT;
DEPARTMENT_ID NAME LOCATION_ID
------------- -------------- -----------
10 ACCOUNTING 122
20 RESEARCH 124
30 SALES 123
40 OPERATIONS 167
12 RESEARCH 122
13 SALES 122
14 OPERATIONS 122
23 SALES 124
24 OPERATIONS 124
34 OPERATIONS 123
43 SALES 167
11 rows selected.
demo@10g> select * from JOB;
JOB_ID FUNCTION
---------- ------------------------------
667 CLERK
668 STAFF
669 ANALYST
670 SALESPERSON
671 MANAGER
672 PRESIDENT
6 rows selected.
demo@10g> select * from EMPLOYEE;
EMPLOYEE_ID FIRST_NAME JOB_ID HIRE_DATE COMMISSION
LAST_NAME M MANAGER_ID SALARY DEPARTMENT_ID
----------- --------------- --------------- - ---------- ---------- ----------- ---------- ---------- -------------
7839 KING FRANCIS A 672 17-nov-1985 5000 10
7505 DOYLE JEAN K 671 7839 04-apr-1985 2850 0 13
7555 PETERS DANIEL T 670 7505 31-mar-1985 1250 300 13
7557 SHAW KAREN P 670 7505 02-apr-1985 1250 1200 13
7600 PORTER RAYMOND Y 670 7505 15-apr-1985 1250 900 13
7820 ROSS PAUL S 670 7 505 01-jun-1985 1300 800 13
7950 JENSEN ALICE B 667 7505 15-jan-1987 750 0 13
7506 DENNIS LYNN S 671 7839 15-may-1985 2750 0 23
7560 DUNCAN SARAH S 670 7506 31-may-1985 1250 0 23
7564 LANGE GREGORY J 670 7506 01-jun-1985 1250 300 23
7789 WEST LIVIA N 670 7506 04-apr-1985 1500 1000 23
7954 MURRAY JAMES T 667 7506 16-jan-1987 750 0 23
7507 BAKER LESLIE D 671 7839 10-jun-1985 2200 0 14
7609 LEWIS RICHARD M 668 7507 16-apr-1985 1800 0 14
7676 SOMMERS DENISE D 668 7507 19-apr-1985 1850 0 14
7566 JONES TERRY M 671 7839 02-apr-1985 2975 0 20
7788 SCOTT DONALD T 669 7566 09-dec-1986 3000 0 20
7876 ADAMS DIANE G 667 7788 12-jan-1987 1100 0 20
7902 FORD JENNIFER D 669 7566 03-dec-1985 3000 0 20
7369 SMITH JOHN Q 667 7902 17-dec-1984 800 0 20
7569 ALBERTS CHRIS L 671 7839 06-apr-1985 3000 0 12
7799 FISHER MATTHEW G 669 7569 12-dec-1986 3000 0 12
7919 DOUGLAS MICHAEL A 667 7799 04-jan-1987 800 0 12
7916 ROBERTS GRACE M 669 7569 04-jan-1987 2875 0 12
7698 BLAKE MARION S 671 7839 01-may-1985 2850 0 30
7499 ALLEN KEVIN J 670 7698 20-feb-1985 1600 300 30
7521 WARD CYNTHIA D 670 7698 22-feb-1985 1250 500 30
7654 MARTIN KENNETH J 670 7698 28-sep-1985 1250 1400 30
7844 TURNER MARY A 670 7698 08-sep-1985 1500 0 30
7900 JAMES FRED S 667 7698 03-dec-1985 950 0 30
7782 CLARK CAROL F 671 7839 09-jun-1985 2450 0 10
7934 MILLER BARBARA M 667 7782 23-jan-1986 1300 0 10
32 rows selected.
demo@10g> select * from CUSTOMER;
CUSTOMER_ID ADDRESS ST AREA_CODE SALESPERSON_ID
NAME CITY ZIP_CODE PHONE_NUMBER CREDIT_LIMIT
----------- --------------------- -- ---------- --------------
-------------------- ---------------- --------- ------------ ------------
100 JOCKSPORTS 345 VIEWRIDGE BELMONT CA 96711 415 5986609 7844 5000
101 TKB SPORT SHOP 490 BOLI RD. REDWOOD CITY CA 94061 415 3681223 7521 10000
102 VOLLYRITE 9722 HAMILTON BURLINGAME CA 95133 415 6443341 7654 7000
103 JUST TENNIS HILLVIEW MALL BURLINGAME CA 97 415 6779312 7521 3000
104 EVERY MOUNTAIN 574 SURRY RD. CUPERTINO CA 93301 408 9962323 7499 10000
105 K + T SPORTS 3476 EL PASEO SANTA CLARA CA 91003 408 3769966 7844 5000
106 SHAPE UP 908 SEQUOIA PALO ALTO CA 94301 415 3649777 7521 6000
107 WOMENS SPORTS VALCO VILLAGE SUNNYVALE CA 93301 408 9674398 7499 10000
108 NORTH WOODS HEALTH 98 LONE PINE WAY HIBBING MN 55649 612 5669123 7844 8000
201 STADIUM SPORTS 47 IRVING PL. NEW YORK NY 10003 212 5555335 7557 10000
202 HOOPS 2345 ADAMS AVE. LEICESTER MA 01524 508 5557542 7820 5000
203 REBOUND SPORTS 2 E. 14TH ST. NEW YORK NY 10009 212 5555989 7557 10000
204 THE POWER FORWARD 1 KNOTS LANDING DALLAS TX 75248 214 5550505 7560 12000
205 POINT GUARD 20 THURSTON ST. YONKERS NY 10956 914 5554766 7557 3000
206 THE COLISEUM 5678 WILBUR PL. SCARSDALE NY 10583 914 5550217 7557 6000
207 FAST BREAK 1000 HERBERT LN. CONCORD MA 01742 508 5551298 7820 7000
208 AL AND BOB'S SPORTS 260 YORKTOWN CT. AUSTIN TX 78731 512 5557631 7560 4000
211 AT BAT 234 BEACHEM ST. BROOKLINE MA 02146 617 5557385 7820 8000
212 ALL SPORT 1000 38TH ST. BROOKLYN NY 11210 718 5551739 7600 6000
213 GOOD SPORT 400 46TH ST. SUNNYSIDE NY 11104 718 5553771 7600 5000
214 AL'S PRO SHOP 45 SPRUCE ST. SPRING TX 77388 713 5555172 7564 8000
215 BOB'S FAMILY SPORTS 400 E. 23RD HOUSTON TX 77026 713 5558015 7654 8000
216 THE ALL AMERICAN 547 PRENTICE RD. CHELSEA MA 02150 617 5553047 7820 5000
217 HIT, THROW, AND RUN 333 WOOD COURT GRAPEVINE TX 76051 817 5552352 7564 6000
218 THE OUTFIELD 346 GARDEN BLVD. FLUSHING NY 11355 718 5552131 7820 4000
221 WHEELS AND DEALS 2 MEMORIAL DRIVE HOUSTON TX 77007 713 5554139 7789 10000
222 JUST BIKES 4000 PARKRIDGE BLVD. DALLAS TX 75205 214 5558735 7789 4000
223 VELO SPORTS 23 WHITE ST. MALDEN MA 02148 617 5554983 7820 5000
224 JOE'S BIKE SHOP 4500 FOX COURT GRAND PRARIE TX 75051 214 5559834 7789 6000
225 BOB'S SWIM, AND RUN 300 HORSECREEK IRVING TX 75039 214 5558388 7789 7000
226 CENTURY SHOP 8 DAGMAR DR. HUNTINGTON NY 11743 516 5553006 7555 4000
227 THE TOUR 2500 GARDNER RD. SOMERVILLE MA 02144 617 5556673 7820 5000
228 FITNESS FIRST 5000 85TH ST. JACKSON HEIGHTS NY 11372 718 5558710 7555 4000
33 rows selected.
demo@10g> select * from SALES_ORDER;
ORDER_ID CUSTOMER_ID TOTAL
ORDER_DATE SHIP_DATE
---------- ----------- ----------- ----------- ----------
610 07-jan-1991 101