Componentes.Terceros.jvcl/official/3.00/examples/JvUIB/Database/employee_IB6.sql

1177 lines
67 KiB
SQL

/******************************************************************************/
/*** Generated by IBExpert 2.5.0.22 07/03/2003 18:57:49 ***/
/******************************************************************************/
/******************************************************************************/
/*** Domains ***/
/******************************************************************************/
SET SQL DIALECT 3;
CREATE DATABASE '..\..\..\bin\Data\employee.gdb' USER 'SYSDBA' PASSWORD 'masterkey' DEFAULT CHARACTER SET WIN1252;
CREATE DOMAIN ADDRESSLINE AS
VARCHAR(30) CHARACTER SET NONE;
CREATE DOMAIN BUDGET AS
NUMERIC(15,2)
DEFAULT 50000
CHECK (VALUE > 10000 AND VALUE <= 2000000);
CREATE DOMAIN COUNTRYNAME AS
VARCHAR(15) CHARACTER SET NONE;
CREATE DOMAIN CUSTNO AS
INTEGER
CHECK (VALUE > 1000);
CREATE DOMAIN DEPTNO AS
CHAR(3) CHARACTER SET NONE
CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);
CREATE DOMAIN EMPNO AS
SMALLINT;
CREATE DOMAIN FIRSTNAME AS
VARCHAR(15) CHARACTER SET NONE;
CREATE DOMAIN JOBCODE AS
VARCHAR(5) CHARACTER SET NONE
CHECK (VALUE > '99999');
CREATE DOMAIN JOBGRADE AS
SMALLINT
CHECK (VALUE BETWEEN 0 AND 6);
CREATE DOMAIN LASTNAME AS
VARCHAR(20) CHARACTER SET NONE;
CREATE DOMAIN PHONENUMBER AS
VARCHAR(20) CHARACTER SET NONE;
CREATE DOMAIN PONUMBER AS
CHAR(8) CHARACTER SET NONE
CHECK (VALUE STARTING WITH 'V');
CREATE DOMAIN PRODTYPE AS
VARCHAR(12) CHARACTER SET NONE
DEFAULT 'software'
NOT NULL
CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A'));
CREATE DOMAIN PROJNO AS
CHAR(5) CHARACTER SET NONE
CHECK (VALUE = UPPER (VALUE));
CREATE DOMAIN SALARY AS
NUMERIC(15,2)
DEFAULT 0
CHECK (VALUE > 0);
/******************************************************************************/
/*** Generators ***/
/******************************************************************************/
CREATE GENERATOR CUST_NO_GEN;
SET GENERATOR CUST_NO_GEN TO 1015;
CREATE GENERATOR EMP_NO_GEN;
SET GENERATOR EMP_NO_GEN TO 145;
/******************************************************************************/
/*** Exceptions ***/
/******************************************************************************/
CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.';
CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.';
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.';
CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
SET TERM ^ ;
/******************************************************************************/
/*** Stored Procedures ***/
/******************************************************************************/
CREATE PROCEDURE ADD_EMP_PROJ (
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE ALL_LANGS
RETURNS (
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE DELETE_EMPLOYEE (
EMP_NUM INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE DEPT_BUDGET (
DNO CHAR(3) CHARACTER SET NONE)
RETURNS (
TOT NUMERIC(15,2))
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE GET_EMP_PROJ (
EMP_NO SMALLINT)
RETURNS (
PROJ_ID CHAR(5) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE MAIL_LABEL (
CUST_NO INTEGER)
RETURNS (
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE ORG_CHART
RETURNS (
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE SHIP_ORDER (
PO_NUM CHAR(8) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE SHOW_LANGS (
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE)
RETURNS (
LANGUAGES VARCHAR(15) CHARACTER SET NONE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE SUB_TOT_BUDGET (
HEAD_DEPT CHAR(3) CHARACTER SET NONE)
RETURNS (
TOT_BUDGET NUMERIC(15,2),
AVG_BUDGET NUMERIC(15,2),
MIN_BUDGET NUMERIC(15,2),
MAX_BUDGET NUMERIC(15,2))
AS
BEGIN
EXIT;
END^
SET TERM ; ^
/******************************************************************************/
/*** Tables ***/
/******************************************************************************/
CREATE TABLE COUNTRY (
COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) CHARACTER SET NONE NOT NULL
);
CREATE TABLE CUSTOMER (
CUST_NO CUSTNO NOT NULL,
CUSTOMER VARCHAR(25) CHARACTER SET NONE NOT NULL,
CONTACT_FIRST FIRSTNAME,
CONTACT_LAST LASTNAME,
PHONE_NO PHONENUMBER,
ADDRESS_LINE1 ADDRESSLINE,
ADDRESS_LINE2 ADDRESSLINE,
CITY VARCHAR(25) CHARACTER SET NONE,
STATE_PROVINCE VARCHAR(15) CHARACTER SET NONE,
COUNTRY COUNTRYNAME,
POSTAL_CODE VARCHAR(12) CHARACTER SET NONE,
ON_HOLD CHAR(1) CHARACTER SET NONE DEFAULT NULL
);
CREATE TABLE DEPARTMENT (
DEPT_NO DEPTNO NOT NULL,
DEPARTMENT VARCHAR(25) CHARACTER SET NONE NOT NULL,
HEAD_DEPT DEPTNO,
MNGR_NO EMPNO,
BUDGET BUDGET,
LOCATION VARCHAR(15) CHARACTER SET NONE,
PHONE_NO PHONENUMBER DEFAULT '555-1234'
);
CREATE TABLE EMPLOYEE (
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
PHONE_EXT VARCHAR(4) CHARACTER SET NONE,
HIRE_DATE DATE DEFAULT 'NOW' NOT NULL,
DEPT_NO DEPTNO NOT NULL,
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
SALARY SALARY NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name)
);
CREATE TABLE EMPLOYEE_PROJECT (
EMP_NO EMPNO NOT NULL,
PROJ_ID PROJNO NOT NULL
);
CREATE TABLE JOB (
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_TITLE VARCHAR(25) CHARACTER SET NONE NOT NULL,
MIN_SALARY SALARY NOT NULL,
MAX_SALARY SALARY NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE 1 SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15) [1:5] CHARACTER SET NONE
);
CREATE TABLE PROJ_DEPT_BUDGET (
FISCAL_YEAR INTEGER NOT NULL,
PROJ_ID PROJNO NOT NULL,
DEPT_NO DEPTNO NOT NULL,
QUART_HEAD_CNT INTEGER [1:4],
PROJECTED_BUDGET BUDGET
);
CREATE TABLE PROJECT (
PROJ_ID PROJNO NOT NULL,
PROJ_NAME VARCHAR(20) CHARACTER SET NONE NOT NULL,
PROJ_DESC BLOB SUB_TYPE 1 SEGMENT SIZE 800,
TEAM_LEADER EMPNO,
PRODUCT PRODTYPE
);
CREATE TABLE SALARY_HISTORY (
EMP_NO EMPNO NOT NULL,
CHANGE_DATE DATE DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) CHARACTER SET NONE NOT NULL,
OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL,
NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100)
);
CREATE TABLE SALES (
PO_NUMBER PONUMBER NOT NULL,
CUST_NO CUSTNO NOT NULL,
SALES_REP EMPNO,
ORDER_STATUS VARCHAR(7) CHARACTER SET NONE DEFAULT 'new' NOT NULL,
ORDER_DATE DATE DEFAULT 'NOW' NOT NULL,
SHIP_DATE DATE,
DATE_NEEDED DATE,
PAID CHAR(1) CHARACTER SET NONE DEFAULT 'n',
QTY_ORDERED INTEGER DEFAULT 1 NOT NULL,
TOTAL_VALUE NUMERIC(9,2) NOT NULL,
DISCOUNT FLOAT DEFAULT 0 NOT NULL,
ITEM_TYPE PRODTYPE,
AGED COMPUTED BY (ship_date - order_date)
);
CREATE TABLE TBLOB (
STREAM BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
/******************************************************************************/
/*** Views ***/
/******************************************************************************/
/* View: PHONE_LIST */
CREATE VIEW PHONE_LIST(
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
LOCATION,
PHONE_NO)
AS
SELECT
emp_no, first_name, last_name, phone_ext, location, phone_no
FROM employee, department
WHERE employee.dept_no = department.dept_no;
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('USA', 'Dollar');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('England', 'Pound');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Canada', 'CdnDlr');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Switzerland', 'SFranc');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Japan', 'Yen');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Italy', 'Lira');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('France', 'FFranc');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Germany', 'D-Mark');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Australia', 'ADollar');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Hong Kong', 'HKDollar');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Netherlands', 'Guilder');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Belgium', 'BFranc');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Austria', 'Schilling');
INSERT INTO COUNTRY (COUNTRY, CURRENCY) VALUES ('Fiji', 'FDollar');
COMMIT WORK;
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1001, 'Signature Design', 'Dale J.', 'Little', '(619) 530-2710', '15500 Pacific Heights Blvd.', NULL, 'San Diego', 'CA', 'USA', '92121', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1002, 'Dallas Technologies', 'Glen', 'Brown', '(214) 960-2233', 'P. O. Box 47000', NULL, 'Dallas', 'TX', 'USA', '75205', '*');
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1003, 'Buttle, Griffith and Co.', 'James', 'Buttle', '(617) 488-1864', '2300 Newbury Street', 'Suite 101', 'Boston', 'MA', 'USA', '02115', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1004, 'Central Bank', 'Elizabeth', 'Brocket', '61 211 99 88', '66 Lloyd Street', NULL, 'Manchester', NULL, 'England', 'M2 3LA', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1005, 'DT Systems, LTD.', 'Tai', 'Wu', '(852) 850 43 98', '400 Connaught Road', NULL, 'Central Hong Kong', NULL, 'Hong Kong', NULL, NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1006, 'DataServe International', 'Tomas', 'Bright', '(613) 229 3323', '2000 Carling Avenue', 'Suite 150', 'Ottawa', 'ON', 'Canada', 'K1V 9G1', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1007, 'Mrs. Beauvais', NULL, 'Mrs. Beauvais', NULL, 'P.O. Box 22743', NULL, 'Pebble Beach', 'CA', 'USA', '93953', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1008, 'Anini Vacation Rentals', 'Leilani', 'Briggs', '(808) 835-7605', '3320 Lawai Road', NULL, 'Lihue', 'HI', 'USA', '96766', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1009, 'Max', 'Max', NULL, '22 01 23', '1 Emerald Cove', NULL, 'Turtle Island', NULL, 'Fiji', NULL, '*');
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1010, 'MPM Corporation', 'Miwako', 'Miyamoto', '3 880 77 19', '2-64-7 Sasazuka', NULL, 'Tokyo', NULL, 'Japan', '150', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1011, 'Dynamic Intelligence Corp', 'Victor', 'Granges', '01 221 16 50', 'Florhofgasse 10', NULL, 'Zurich', NULL, 'Switzerland', '8005', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1012, '3D-Pad Corp.', 'Michelle', 'Roche', '1 43 60 61', '22 Place de la Concorde', NULL, 'Paris', NULL, 'France', '75008', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1013, 'Lorenzi Export, Ltd.', 'Andreas', 'Lorenzi', '02 404 6284', 'Via Eugenia, 15', NULL, 'Milan', NULL, 'Italy', '20124', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1014, 'Dyno Consulting', 'Greta', 'Hessels', '02 500 5940', 'Rue Royale 350', NULL, 'Brussels', NULL, 'Belgium', '1210', NULL);
INSERT INTO CUSTOMER (CUST_NO, CUSTOMER, CONTACT_FIRST, CONTACT_LAST, PHONE_NO, ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY, POSTAL_CODE, ON_HOLD) VALUES (1015, 'GeoTech Inc.', 'K.M.', 'Neppelenbroek', '(070) 44 91 18', 'P.0.Box 702', NULL, 'Den Haag', NULL, 'Netherlands', '2514', NULL);
COMMIT WORK;
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('000', 'Corporate Headquarters', NULL, 105, 1000000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('100', 'Sales and Marketing', '000', 85, 2000000, 'San Francisco', '(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('600', 'Engineering', '000', 2, 1100000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('900', 'Finance', '000', 46, 400000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('180', 'Marketing', '100', NULL, 1500000, 'San Francisco', '(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('620', 'Software Products Div.', '600', NULL, 1200000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('621', 'Software Development', '620', NULL, 400000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('622', 'Quality Assurance', '620', 9, 300000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('623', 'Customer Support', '620', 15, 650000, 'Monterey', '(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('670', 'Consumer Electronics Div.', '600', 107, 1150000, 'Burlington, VT', '(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('671', 'Research and Development', '670', 20, 460000, 'Burlington, VT', '(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('672', 'Customer Services', '670', 94, 850000, 'Burlington, VT', '(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('130', 'Field Office: East Coast', '100', 11, 500000, 'Boston', '(617) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('140', 'Field Office: Canada', '100', 72, 500000, 'Toronto', '(416) 677-1000');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('110', 'Pacific Rim Headquarters', '100', 34, 600000, 'Kuaui', '(808) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('115', 'Field Office: Japan', '110', 118, 500000, 'Tokyo', '3 5350 0901');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('116', 'Field Office: Singapore', '110', NULL, 300000, 'Singapore', '3 55 1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('120', 'European Headquarters', '100', 36, 700000, 'London', '71 235-4400');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('121', 'Field Office: Switzerland', '120', 141, 500000, 'Zurich', '1 211 7767');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('123', 'Field Office: France', '120', 134, 400000, 'Cannes', '58 68 11 12');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('125', 'Field Office: Italy', '120', 121, 400000, 'Milan', '2 430 39 39');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('117', 'Field Office: Hong Kong', '110', NULL, 100000, NULL, '555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('118', 'Field Office: Australia', '110', NULL, 100000, NULL, '555-1234');
INSERT INTO DEPARTMENT (DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO) VALUES ('119', 'Field Office: New Zealand', '110', NULL, 100000, NULL, '555-1234');
COMMIT WORK;
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (2, 'Robert', 'Nelson', '250', '1988-12-28', '600', 'VP', 2, 'USA', 105900);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (4, 'Bruce', 'Young', '233', '1988-12-28', '621', 'Eng', 2, 'USA', 97500);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (5, 'Kim', 'Lambert', '22', '1989-02-06', '130', 'Eng', 2, 'USA', 102750);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (8, 'Leslie', 'Johnson', '410', '1989-04-05', '180', 'Mktg', 3, 'USA', 64635);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (9, 'Phil', 'Forest', '229', '1989-04-17', '622', 'Mngr', 3, 'USA', 75060);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (11, 'K. J.', 'Weston', '34', '1990-01-17', '130', 'SRep', 4, 'USA', 86292.9375);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (12, 'Terri', 'Lee', '256', '1990-05-01', '000', 'Admin', 4, 'USA', 53793);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (14, 'Stewart', 'Hall', '227', '1990-06-04', '900', 'Finan', 3, 'USA', 69482.625);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (15, 'Katherine', 'Young', '231', '1990-06-14', '623', 'Mngr', 3, 'USA', 67241.25);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (20, 'Chris', 'Papadopoulos', '887', '1990-01-01', '671', 'Mngr', 3, 'USA', 89655);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (24, 'Pete', 'Fisher', '888', '1990-09-12', '671', 'Eng', 3, 'USA', 81810.1875);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (28, 'Ann', 'Bennet', '5', '1991-02-01', '120', 'Admin', 5, 'England', 22935);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (29, 'Roger', 'De Souza', '288', '1991-02-18', '623', 'Eng', 3, 'USA', 69482.625);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (34, 'Janet', 'Baldwin', '2', '1991-03-21', '110', 'Sales', 3, 'USA', 61637.8125);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (36, 'Roger', 'Reeves', '6', '1991-04-25', '120', 'Sales', 3, 'England', 33620.625);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (37, 'Willie', 'Stansbury', '7', '1991-04-25', '120', 'Eng', 4, 'England', 39224.0625);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (44, 'Leslie', 'Phong', '216', '1991-06-03', '623', 'Eng', 4, 'USA', 56034.375);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (45, 'Ashok', 'Ramanathan', '209', '1991-08-01', '621', 'Eng', 3, 'USA', 80689.5);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (46, 'Walter', 'Steadman', '210', '1991-08-09', '900', 'CFO', 1, 'USA', 116100);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (52, 'Carol', 'Nordstrom', '420', '1991-10-02', '180', 'PRel', 4, 'USA', 42742.5);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (61, 'Luke', 'Leung', '3', '1992-02-18', '110', 'SRep', 4, 'USA', 68805);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (65, 'Sue Anne', 'O''Brien', '877', '1992-03-23', '670', 'Admin', 5, 'USA', 31275);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (71, 'Jennifer M.', 'Burbank', '289', '1992-04-15', '622', 'Eng', 3, 'USA', 53167.5);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (72, 'Claudia', 'Sutherland', NULL, '1992-04-20', '140', 'SRep', 4, 'Canada', 100914);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (83, 'Dana', 'Bishop', '290', '1992-06-01', '621', 'Eng', 3, 'USA', 62550);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (85, 'Mary S.', 'MacDonald', '477', '1992-06-01', '100', 'VP', 2, 'USA', 111262.5);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (94, 'Randy', 'Williams', '892', '1992-08-08', '672', 'Mngr', 4, 'USA', 56295);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (105, 'Oliver H.', 'Bender', '255', '1992-10-08', '000', 'CEO', 1, 'USA', 212850);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (107, 'Kevin', 'Cook', '894', '1993-02-01', '670', 'Dir', 2, 'USA', 111262.5);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (109, 'Kelly', 'Brown', '202', '1993-02-04', '600', 'Admin', 5, 'USA', 27000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (110, 'Yuki', 'Ichida', '22', '1993-02-04', '115', 'Eng', 3, 'Japan', 6000000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (113, 'Mary', 'Page', '845', '1993-04-12', '671', 'Eng', 4, 'USA', 48000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (114, 'Bill', 'Parker', '247', '1993-06-01', '623', 'Eng', 5, 'USA', 35000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (118, 'Takashi', 'Yamamoto', '23', '1993-07-01', '115', 'SRep', 4, 'Japan', 7480000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (121, 'Roberto', 'Ferrari', '1', '1993-07-12', '125', 'SRep', 4, 'Italy', 99000000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (127, 'Michael', 'Yanowski', '492', '1993-08-09', '100', 'SRep', 4, 'USA', 44000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (134, 'Jacques', 'Glon', NULL, '1993-08-23', '123', 'SRep', 4, 'France', 390500);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (136, 'Scott', 'Johnson', '265', '1993-09-13', '623', 'Doc', 3, 'USA', 60000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (138, 'T.J.', 'Green', '218', '1993-11-01', '621', 'Eng', 4, 'USA', 36000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (141, 'Pierre', 'Osborne', NULL, '1994-01-03', '121', 'SRep', 4, 'Switzerland', 110000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (144, 'John', 'Montgomery', '820', '1994-03-30', '672', 'Eng', 5, 'USA', 35000);
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY) VALUES (145, 'Mark', 'Guckenheimer', '221', '1994-05-02', '622', 'Eng', 5, 'USA', 32000);
COMMIT WORK;
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (144, 'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (113, 'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (24, 'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (8, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (136, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (15, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (71, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (145, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (44, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (4, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (83, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (138, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (45, 'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (20, 'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (24, 'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (113, 'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (8, 'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (4, 'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (71, 'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (46, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (105, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (12, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (85, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (110, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (34, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (8, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (14, 'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (52, 'MKTPR');
COMMIT WORK;
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('CEO', 1, 'USA', 'Chief Executive Officer', 130000, 250000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('CFO', 1, 'USA', 'Chief Financial Officer', 85000, 140000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('VP', 2, 'USA', 'Vice President', 80000, 130000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Dir', 2, 'USA', 'Director', 75000, 120000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Mngr', 3, 'USA', 'Manager', 60000, 100000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Mngr', 4, 'USA', 'Manager', 30000, 60000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Admin', 4, 'USA', 'Administrative Assistant', 35000, 55000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Admin', 5, 'USA', 'Administrative Assistant', 20000, 40000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Admin', 5, 'England', 'Administrative Assistant', 13400, 26800);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('PRel', 4, 'USA', 'Public Relations Rep.', 25000, 65000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Mktg', 3, 'USA', 'Marketing Analyst', 40000, 80000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Mktg', 4, 'USA', 'Marketing Analyst', 20000, 50000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Accnt', 4, 'USA', 'Accountant', 28000, 55000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Finan', 3, 'USA', 'Financial Analyst', 35000, 85000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 2, 'USA', 'Engineer', 70000, 110000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 3, 'USA', 'Engineer', 50000, 90000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 3, 'Japan', 'Engineer', 5400000, 9720000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 4, 'USA', 'Engineer', 30000, 65000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 4, 'England', 'Engineer', 20100, 43550);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Eng', 5, 'USA', 'Engineer', 25000, 35000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Doc', 3, 'USA', 'Technical Writer', 38000, 60000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Doc', 5, 'USA', 'Technical Writer', 22000, 40000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Sales', 3, 'USA', 'Sales Co-ordinator', 40000, 70000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('Sales', 3, 'England', 'Sales Co-ordinator', 26800, 46900);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'USA', 'Sales Representative', 20000, 100000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'England', 'Sales Representative', 13400, 67000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'Canada', 'Sales Representative', 26400, 132000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'Switzerland', 'Sales Representative', 28000, 149000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'Japan', 'Sales Representative', 2160000, 10800000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'Italy', 'Sales Representative', 33600000, 168000000);
INSERT INTO JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY, JOB_TITLE, MIN_SALARY, MAX_SALARY) VALUES ('SRep', 4, 'France', 'Sales Representative', 118200, 591000);
COMMIT WORK;
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('VBASE', 'Video Database', 45, 'software');
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('DGPII', 'DigiPizza', 24, 'other');
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('GUIDE', 'AutoMap', 20, 'hardware');
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('MAPDB', 'MapBrowser port', 4, 'software');
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('HWRII', 'Translator upgrade', NULL, 'software');
INSERT INTO PROJECT (PROJ_ID, PROJ_NAME, TEAM_LEADER, PRODUCT) VALUES ('MKTPR', 'Marketing project 3', 85, 'N/A');
COMMIT WORK;
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'GUIDE', '100', 200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'GUIDE', '671', 450000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1993, 'MAPDB', '621', 20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MAPDB', '621', 40000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MAPDB', '622', 60000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MAPDB', '671', 11000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'HWRII', '670', 20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'HWRII', '621', 400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'HWRII', '622', 100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MKTPR', '623', 80000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MKTPR', '672', 100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MKTPR', '100', 1000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MKTPR', '110', 200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'MKTPR', '000', 100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'MKTPR', '623', 1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'MKTPR', '672', 800000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'MKTPR', '100', 2000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'MKTPR', '110', 1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'VBASE', '621', 1900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'VBASE', '621', 900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'VBASE', '622', 400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1994, 'VBASE', '100', 300000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1995, 'VBASE', '100', 1500000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET) VALUES (1996, 'VBASE', '100', 150000);
COMMIT WORK;
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (28, '1992-12-15', 'admin2', 20000, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (2, '1992-12-15', 'admin2', 98000, 8.06122448979592);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (4, '1992-12-15', 'admin2', 90000, 8.33333333333333);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (5, '1992-12-15', 'admin2', 95000, 8.1578947368421);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (11, '1992-12-15', 'admin2', 70000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (12, '1992-12-15', 'admin2', 48000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (14, '1992-12-15', 'admin2', 62000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (15, '1992-12-15', 'admin2', 60000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (20, '1992-12-15', 'admin2', 80000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (24, '1992-12-15', 'admin2', 73000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (29, '1992-12-15', 'admin2', 62000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (34, '1992-12-15', 'admin2', 55000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (36, '1992-12-15', 'admin2', 30000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (37, '1992-12-15', 'admin2', 35000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (44, '1992-12-15', 'admin2', 50000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (45, '1992-12-15', 'admin2', 72000, 7.5);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (8, '1993-09-08', 'elaine', 62000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (9, '1993-09-08', 'elaine', 72000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (11, '1993-09-08', 'elaine', 75250, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (12, '1993-09-08', 'elaine', 51600, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (14, '1993-09-08', 'elaine', 66650, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (15, '1993-09-08', 'elaine', 64500, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (20, '1993-09-08', 'elaine', 86000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (24, '1993-09-08', 'elaine', 78475, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (28, '1993-09-08', 'elaine', 22000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (29, '1993-09-08', 'elaine', 66650, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (34, '1993-09-08', 'elaine', 59125, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (36, '1993-09-08', 'elaine', 32250, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (37, '1993-09-08', 'elaine', 37625, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (44, '1993-09-08', 'elaine', 53750, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (45, '1993-09-08', 'elaine', 77400, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (52, '1993-09-08', 'elaine', 41000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (61, '1993-09-08', 'elaine', 60000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (65, '1993-09-08', 'elaine', 30000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (71, '1993-09-08', 'elaine', 51000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (72, '1993-09-08', 'elaine', 88000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (83, '1993-09-08', 'elaine', 60000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (94, '1993-09-08', 'elaine', 54000, 4.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (46, '1993-12-20', 'tj', 120000, -3.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (85, '1993-12-20', 'tj', 115000, -3.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (105, '1993-12-20', 'tj', 220000, -3.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (107, '1993-12-20', 'tj', 115000, -3.25);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (11, '1993-12-20', 'elaine', 78448.125, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (61, '1993-12-20', 'elaine', 62550, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (72, '1993-12-20', 'elaine', 91740, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (118, '1993-12-20', 'elaine', 6800000, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (121, '1993-12-20', 'elaine', 90000000, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (127, '1993-12-20', 'elaine', 40000, 10);
INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (134, '1993-12-20', 'elaine', 355000, 10);
COMMIT WORK;
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V91E0210', 1004, 11, 'shipped', '1991-03-04', '1991-03-05', NULL, 'y', 10, 5000, 0.100000001490116, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V92E0340', 1004, 11, 'shipped', '1992-10-15', '1992-10-16', '1992-10-17', 'y', 7, 70000, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V92J1003', 1010, 61, 'shipped', '1992-07-26', '1992-08-04', '1992-09-15', 'y', 15, 2985, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93J2004', 1010, 118, 'shipped', '1993-10-30', '1993-12-02', '1993-11-15', 'y', 3, 210, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93J3100', 1010, 118, 'shipped', '1993-08-20', '1993-08-20', NULL, 'y', 16, 18000.4, 0.100000001490116, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V92F3004', 1012, 11, 'shipped', '1992-10-15', '1993-01-16', '1993-01-16', 'y', 3, 2000, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93F3088', 1012, 134, 'shipped', '1993-08-27', '1993-09-08', NULL, 'n', 10, 10000, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93F2030', 1012, 134, 'open', '1993-12-12', NULL, NULL, 'y', 15, 450000.49, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93F2051', 1012, 134, 'waiting', '1993-12-18', NULL, '1994-03-01', 'n', 1, 999.98, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93H0030', 1005, 118, 'open', '1993-12-12', NULL, '1994-01-01', 'y', 20, 5980, 0.200000002980232, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V94H0079', 1005, 61, 'open', '1994-02-13', NULL, '1994-04-20', 'n', 10, 9000, 0.0500000007450581, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9324200', 1001, 72, 'shipped', '1993-08-09', '1993-08-09', '1993-08-17', 'y', 1000, 560000, 0.200000002980232, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9324320', 1001, 127, 'shipped', '1993-08-16', '1993-08-16', '1993-09-01', 'y', 1, 0, 1, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9320630', 1001, 127, 'open', '1993-12-12', NULL, '1993-12-15', 'n', 3, 60000, 0.200000002980232, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9420099', 1001, 127, 'open', '1994-01-17', NULL, '1994-06-01', 'n', 100, 3399.15, 0.150000005960464, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9427029', 1001, 127, 'shipped', '1994-02-07', '1994-02-10', '1994-02-10', 'n', 17, 422210.97, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9333005', 1002, 11, 'shipped', '1993-02-03', '1993-03-03', NULL, 'y', 2, 600.5, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9333006', 1002, 11, 'shipped', '1993-04-27', '1993-05-02', '1993-05-02', 'n', 5, 20000, 0, 'other');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9336100', 1002, 11, 'waiting', '1993-12-27', '1994-01-01', '1994-01-01', 'n', 150, 14850, 0.0500000007450581, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9346200', 1003, 11, 'waiting', '1993-12-31', NULL, '1994-01-24', 'n', 3, 0, 1, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9345200', 1003, 11, 'shipped', '1993-11-11', '1993-12-02', '1993-12-01', 'y', 900, 27000, 0.300000011920929, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9345139', 1003, 127, 'shipped', '1993-09-09', '1993-09-20', '1993-10-01', 'y', 20, 12582.12, 0.100000001490116, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93C0120', 1006, 72, 'shipped', '1993-03-22', '1993-05-31', '1993-04-17', 'y', 1, 47.5, 0, 'other');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93C0990', 1006, 72, 'shipped', '1993-08-09', '1993-09-02', NULL, 'y', 40, 399960.5, 0.100000001490116, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V9456220', 1007, 127, 'open', '1994-01-04', NULL, '1994-01-30', 'y', 1, 3999.99, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93S4702', 1011, 121, 'shipped', '1993-10-27', '1993-10-28', '1993-12-15', 'y', 4, 120000, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V94S6400', 1011, 141, 'waiting', '1994-01-06', NULL, '1994-02-15', 'y', 20, 1980.72, 0.400000005960464, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93H3009', 1008, 61, 'shipped', '1993-08-01', '1993-12-02', '1993-12-01', 'n', 3, 9000, 0.0500000007450581, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93H0500', 1008, 61, 'open', '1993-12-12', NULL, '1993-12-15', 'n', 3, 16000, 0.200000002980232, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93F0020', 1009, 61, 'shipped', '1993-10-10', '1993-11-11', '1993-11-11', 'n', 1, 490.69, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93I4700', 1013, 121, 'open', '1993-10-27', NULL, '1993-12-15', 'n', 5, 2693, 0, 'hardware');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93B1002', 1014, 134, 'shipped', '1993-09-20', '1993-09-21', '1993-09-25', 'y', 1, 100.02, 0, 'software');
INSERT INTO SALES (PO_NUMBER, CUST_NO, SALES_REP, ORDER_STATUS, ORDER_DATE, SHIP_DATE, DATE_NEEDED, PAID, QTY_ORDERED, TOTAL_VALUE, DISCOUNT, ITEM_TYPE) VALUES ('V93N5822', 1015, 134, 'shipped', '1993-12-18', '1994-01-14', NULL, 'n', 2, 1500, 0, 'software');
COMMIT WORK;
/* Check constraints definition */
ALTER TABLE JOB ADD CHECK (min_salary < max_salary);
ALTER TABLE EMPLOYEE ADD CHECK ( salary >= (SELECT min_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country) AND
salary <= (SELECT max_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country));
ALTER TABLE PROJ_DEPT_BUDGET ADD CHECK (FISCAL_YEAR >= 1993);
ALTER TABLE SALARY_HISTORY ADD CHECK (percent_change between -50 and 50);
ALTER TABLE CUSTOMER ADD CHECK (on_hold IS NULL OR on_hold = '*');
ALTER TABLE SALES ADD CHECK (order_status in
('new', 'open', 'shipped', 'waiting'));
ALTER TABLE SALES ADD CHECK (ship_date >= order_date OR ship_date IS NULL);
ALTER TABLE SALES ADD CHECK (date_needed > order_date OR date_needed IS NULL);
ALTER TABLE SALES ADD CHECK (paid in ('y', 'n'));
ALTER TABLE SALES ADD CHECK (qty_ordered >= 1);
ALTER TABLE SALES ADD CHECK (total_value >= 0);
ALTER TABLE SALES ADD CHECK (discount >= 0 AND discount <= 1);
ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL));
ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND
EXISTS (SELECT on_hold FROM customer
WHERE customer.cust_no = sales.cust_no
AND customer.on_hold = '*')));
/******************************************************************************/
/*** Unique Constraints ***/
/******************************************************************************/
ALTER TABLE DEPARTMENT ADD UNIQUE (DEPARTMENT);
ALTER TABLE PROJECT ADD UNIQUE (PROJ_NAME);
/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/
ALTER TABLE COUNTRY ADD PRIMARY KEY (COUNTRY);
ALTER TABLE CUSTOMER ADD PRIMARY KEY (CUST_NO);
ALTER TABLE DEPARTMENT ADD PRIMARY KEY (DEPT_NO);
ALTER TABLE EMPLOYEE ADD PRIMARY KEY (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD PRIMARY KEY (EMP_NO, PROJ_ID);
ALTER TABLE JOB ADD PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE PROJECT ADD PRIMARY KEY (PROJ_ID);
ALTER TABLE PROJ_DEPT_BUDGET ADD PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO);
ALTER TABLE SALARY_HISTORY ADD PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID);
ALTER TABLE SALES ADD PRIMARY KEY (PO_NUMBER);
/******************************************************************************/
/*** Foreign Keys ***/
/******************************************************************************/
ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO);
ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
/******************************************************************************/
/*** Indices ***/
/******************************************************************************/
CREATE INDEX CUSTNAMEX ON CUSTOMER (CUSTOMER);
CREATE INDEX CUSTREGION ON CUSTOMER (COUNTRY, CITY);
CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT (BUDGET);
CREATE INDEX NAMEX ON EMPLOYEE (LAST_NAME, FIRST_NAME);
CREATE DESCENDING INDEX MAXSALX ON JOB (JOB_COUNTRY, MAX_SALARY);
CREATE INDEX MINSALX ON JOB (JOB_COUNTRY, MIN_SALARY);
CREATE UNIQUE INDEX PRODTYPEX ON PROJECT (PRODUCT, PROJ_NAME);
CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY (CHANGE_DATE);
CREATE INDEX UPDATERX ON SALARY_HISTORY (UPDATER_ID);
CREATE INDEX NEEDX ON SALES (DATE_NEEDED);
CREATE DESCENDING INDEX QTYX ON SALES (ITEM_TYPE, QTY_ORDERED);
CREATE INDEX SALESTATX ON SALES (ORDER_STATUS, PAID);
/******************************************************************************/
/*** Triggers ***/
/******************************************************************************/
SET TERM ^ ;
/* Trigger: POST_NEW_ORDER */
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
^
/* Trigger: SAVE_SALARY_CHANGE */
CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (old.salary <> new.salary) THEN
INSERT INTO salary_history
(emp_no, change_date, updater_id, old_salary, percent_change)
VALUES (
old.emp_no,
'NOW',
user,
old.salary,
(new.salary - old.salary) * 100 / old.salary);
END
^
/* Trigger: SET_CUST_NO */
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
new.cust_no = gen_id(cust_no_gen, 1);
END
^
/* Trigger: SET_EMP_NO */
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
new.emp_no = gen_id(emp_no_gen, 1);
END
^
SET TERM ; ^
/******************************************************************************/
/*** Stored Procedures ***/
/******************************************************************************/
SET TERM ^ ;
ALTER PROCEDURE ADD_EMP_PROJ (
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE)
AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
EXCEPTION unknown_emp_id;
END
SUSPEND;
END
^
ALTER PROCEDURE ALL_LANGS
RETURNS (
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE)
AS
BEGIN
FOR SELECT job_code, job_grade, job_country FROM job
INTO :code, :grade, :country
DO
BEGIN
FOR SELECT languages FROM show_langs
(:code, :grade, :country) INTO :lang DO
SUSPEND;
/* Put nice separators between rows */
code = '=====';
grade = '=====';
country = '===============';
lang = '==============';
SUSPEND;
END
END
^
ALTER PROCEDURE DELETE_EMPLOYEE (
EMP_NUM INTEGER)
AS
DECLARE VARIABLE any_sales INTEGER;
BEGIN
any_sales = 0;
/*
* If there are any sales records referencing this employee,
* can't delete the employee until the sales are re-assigned
* to another employee or changed to NULL.
*/
SELECT count(po_number)
FROM sales
WHERE sales_rep = :emp_num
INTO :any_sales;
IF (any_sales > 0) THEN
BEGIN
EXCEPTION reassign_sales;
SUSPEND;
END
/*
* If the employee is a manager, update the department.
*/
UPDATE department
SET mngr_no = NULL
WHERE mngr_no = :emp_num;
/*
* If the employee is a project leader, update project.
*/
UPDATE project
SET team_leader = NULL
WHERE team_leader = :emp_num;
/*
* Delete the employee from any projects.
*/
DELETE FROM employee_project
WHERE emp_no = :emp_num;
/*
* Delete old salary records.
*/
DELETE FROM salary_history
WHERE emp_no = :emp_num;
/*
* Delete the employee.
*/
DELETE FROM employee
WHERE emp_no = :emp_num;
SUSPEND;
END
^
ALTER PROCEDURE DEPT_BUDGET (
DNO CHAR(3) CHARACTER SET NONE)
RETURNS (
TOT NUMERIC(15,2))
AS
DECLARE VARIABLE sumb DECIMAL(12, 2);
DECLARE VARIABLE rdno CHAR(3);
DECLARE VARIABLE cnt INTEGER;
BEGIN
tot = 0;
SELECT budget FROM department WHERE dept_no = :dno INTO :tot;
SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt;
IF (cnt = 0) THEN
SUSPEND;
FOR SELECT dept_no
FROM department
WHERE head_dept = :dno
INTO :rdno
DO
BEGIN
EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb;
tot = tot + sumb;
END
SUSPEND;
END
^
ALTER PROCEDURE GET_EMP_PROJ (
EMP_NO SMALLINT)
RETURNS (
PROJ_ID CHAR(5) CHARACTER SET NONE)
AS
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO
SUSPEND;
END
^
ALTER PROCEDURE MAIL_LABEL (
CUST_NO INTEGER)
RETURNS (
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE)
AS
DECLARE VARIABLE customer VARCHAR(25);
DECLARE VARIABLE firstone VARCHAR(15);
DECLARE VARIABLE lastone VARCHAR(20);
DECLARE VARIABLE addr1 VARCHAR(30);
DECLARE VARIABLE addr2 VARCHAR(30);
DECLARE VARIABLE city VARCHAR(25);
DECLARE VARIABLE state VARCHAR(15);
DECLARE VARIABLE country VARCHAR(15);
DECLARE VARIABLE postcode VARCHAR(12);
DECLARE VARIABLE cnt INTEGER;
BEGIN
line1 = '';
line2 = '';
line3 = '';
line4 = '';
line5 = '';
line6 = '';
SELECT customer, contact_first, contact_last, address_line1,
address_line2, city, state_province, country, postal_code
FROM CUSTOMER
WHERE cust_no = :cust_no
INTO :customer, :firstone, :lastone, :addr1, :addr2,
:city, :state, :country, :postcode;
IF (customer IS NOT NULL) THEN
line1 = customer;
IF (firstone IS NOT NULL) THEN
line2 = firstone || ' ' || lastone;
ELSE
line2 = lastone;
IF (addr1 IS NOT NULL) THEN
line3 = addr1;
IF (addr2 IS NOT NULL) THEN
line4 = addr2;
IF (country = 'USA') THEN
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state || ' ' || postcode;
ELSE
line5 = state || ' ' || postcode;
END
ELSE
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state;
ELSE
line5 = state;
line6 = country || ' ' || postcode;
END
SUSPEND;
END
^
ALTER PROCEDURE ORG_CHART
RETURNS (
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER)
AS
DECLARE VARIABLE mngr_no INTEGER;
DECLARE VARIABLE dno CHAR(3);
BEGIN
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = '--TBH--';
title = '';
END
ELSE
SELECT full_name, job_code
FROM employee
WHERE emp_no = :mngr_no
INTO :mngr_name, :title;
SELECT COUNT(emp_no)
FROM employee
WHERE dept_no = :dno
INTO :emp_cnt;
SUSPEND;
END
END
^
ALTER PROCEDURE SHIP_ORDER (
PO_NUM CHAR(8) CHARACTER SET NONE)
AS
DECLARE VARIABLE ord_stat CHAR(7);
DECLARE VARIABLE hold_stat CHAR(1);
DECLARE VARIABLE cust_no INTEGER;
DECLARE VARIABLE any_po CHAR(8);
BEGIN
SELECT s.order_status, c.on_hold, c.cust_no
FROM sales s, customer c
WHERE po_number = :po_num
AND s.cust_no = c.cust_no
INTO :ord_stat, :hold_stat, :cust_no;
/* This purchase order has been already shipped. */
IF (ord_stat = 'shipped') THEN
BEGIN
EXCEPTION order_already_shipped;
SUSPEND;
END
/* Customer is on hold. */
ELSE IF (hold_stat = '*') THEN
BEGIN
EXCEPTION customer_on_hold;
SUSPEND;
END
/*
* If there is an unpaid balance on orders shipped over 2 months ago,
* put the customer on hold.
*/
FOR SELECT po_number
FROM sales
WHERE cust_no = :cust_no
AND order_status = 'shipped'
AND paid = 'n'
AND ship_date < CAST('NOW' AS DATE) - 60
INTO :any_po
DO
BEGIN
EXCEPTION customer_check;
UPDATE customer
SET on_hold = '*'
WHERE cust_no = :cust_no;
SUSPEND;
END
/*
* Ship the order.
*/
UPDATE sales
SET order_status = 'shipped', ship_date = 'NOW'
WHERE po_number = :po_num;
SUSPEND;
END
^
ALTER PROCEDURE SHOW_LANGS (
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE)
RETURNS (
LANGUAGES VARCHAR(15) CHARACTER SET NONE)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 1;
WHILE (i <= 5) DO
BEGIN
SELECT language_req[:i] FROM joB
WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
AND (language_req IS NOT NULL))
INTO :languages;
IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */
languages = 'NULL';
i = i +1;
SUSPEND;
END
END
^
ALTER PROCEDURE SUB_TOT_BUDGET (
HEAD_DEPT CHAR(3) CHARACTER SET NONE)
RETURNS (
TOT_BUDGET NUMERIC(15,2),
AVG_BUDGET NUMERIC(15,2),
MIN_BUDGET NUMERIC(15,2),
MAX_BUDGET NUMERIC(15,2))
AS
BEGIN
SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget)
FROM department
WHERE head_dept = :head_dept
INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
SUSPEND;
END
^
SET TERM ; ^