Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET serveroutput ON;
- DELETE FROM ORDERS_PRODUCTS;
- DELETE FROM ORDERS_STATUS;
- DELETE FROM ORDERS;
- DELETE FROM CUSTOMERS;
- DELETE FROM PRODUCTS;
- DELETE FROM WAREHOUSE;
- DELETE FROM EMAILS_QUEUE;
- DECLARE
- order_id NUMBER(2);
- BEGIN
- -- DODAJ KLIENTOW
- add_customer('Owner','Owner','Owner@owner.com','owner');
- add_customer('Andrzej','Kowalski','akowalski@gmail.com','andrzejsSecretPass');
- add_customer('Mariusz','Andrzejewski','mandzrejowski@gmail.com','haslo');
- add_customer('Agata','Suchecka','asuchecka@gmail.com','innehaslo');
- add_customer('Janusz','Jankowski','jjankowski@gmail.com','cgfdgfdsgdf');
- add_customer('Stefan','Zak','szak@gmail.com','somePass');
- add_customer('Ula','Nowakowska','unowakowska@gmail.com','nowakowskaPass');
- DBMS_OUTPUT.put_line('');
- add_warehouse('dabrowskiego#1','dabrowskiego 255 Lodz');
- add_warehouse('dabrowskiego#2','dabrowskiego 205 Lodz');
- add_warehouse('lodowa#1','lodowa 3 Lodz');
- DBMS_OUTPUT.put_line('');
- add_product('koszulka',1,1);
- add_product('koszulka',2,2);
- add_product('koszulka',1,3);
- add_product('koszulka',2,1);
- add_product('koszulka',1,2);
- add_product('bluza',7,1);
- add_product('bluza',15,2);
- add_product('bluza',5,2);
- add_product('bluza',13,3);
- add_product('bluza',21,2);
- add_product('bluza',14,3);
- add_product('spodnie',21,3);
- add_product('spodnie',12,1);
- add_product('spodnie',11,2);
- add_product('buty',28,3);
- add_product('buty',34,2);
- add_product('rekawiczki',1,1);
- add_product('rekawiczki',1,2);
- DBMS_OUTPUT.put_line('');
- IF (ARE_CREDENTIALS_CORRECT('akowalski@gmail.com','andrzejsSecretPass') = 1) THEN
- DBMS_OUTPUT.put_line('andrzejsSecretPass to poprawne haslo uzytkownika akowalski@gmail.com');
- END IF;
- IF (ARE_CREDENTIALS_CORRECT('mandzrejowski@gmail.com','zlehaslo') = 0) THEN
- DBMS_OUTPUT.put_line('zlehaslo to niepoprawne haslo uzytkownika mandzrejowski@gmail.com');
- END IF;
- DBMS_OUTPUT.put_line('');
- add_order(3,order_id,2);
- add_product_to_order(order_id,1);
- add_product_to_order(order_id,1);
- add_product_to_order(order_id,3);
- add_product_to_order(order_id,2);
- DBMS_OUTPUT.put_line('');
- END;
- --BEGIN
- --dbms_scheduler.stop_job('CHECK_PRODUCTS_JOB');
- --dbms_scheduler.run_job('CHECK_PRODUCTS_JOB',TRUE);
- --------------------------------------------------------
- -- File created - Monday-April-04-2016
- --------------------------------------------------------
- --------------------------------------------------------
- -- DDL for Table CUSTOMERS
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."CUSTOMERS"
- ( "ID" VARCHAR2(4000 BYTE),
- "NAME" VARCHAR2(4000 BYTE),
- "SURNAME" VARCHAR2(4000 BYTE),
- "EMAIL" VARCHAR2(4000 BYTE),
- "PASSWORD" VARCHAR2(4000 BYTE)
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Table EMAILS_QUEUE
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."EMAILS_QUEUE"
- ( "ID" NUMBER,
- "HTML" VARCHAR2(800 BYTE),
- "DESTINATION" VARCHAR2(70 BYTE)
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Table ORDERS
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."ORDERS"
- ( "ID" NUMBER(6,0),
- "CUSTOMER_ID" NUMBER(6,0),
- "TYPE" NUMBER DEFAULT 2
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- COMMENT ON COLUMN "RMSBD"."ORDERS"."TYPE" IS '1- incoming 2-outcoming';
- --------------------------------------------------------
- -- DDL for Table ORDERS_PRODUCTS
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."ORDERS_PRODUCTS"
- ( "ID" NUMBER,
- "ORDER_ID" NUMBER,
- "PRODUCT_ID" NUMBER
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Table ORDERS_STATUS
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."ORDERS_STATUS"
- ( "ID" NUMBER,
- "NAME" VARCHAR2(20 BYTE),
- "ESTABLISH_TIME" DATE,
- "ORDER_ID" NUMBER
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Table PRODUCTS
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."PRODUCTS"
- ( "ID" NUMBER,
- "NAME" VARCHAR2(20 BYTE),
- "WEIGHT" NUMBER,
- "WAREHOUSE_ID" NUMBER,
- "PRICE" NUMBER
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Table WAREHOUSE
- --------------------------------------------------------
- CREATE TABLE "RMSBD"."WAREHOUSE"
- ( "ID" NUMBER(*,0),
- "NAME" VARCHAR2(50 BYTE),
- "ADRESS" VARCHAR2(50 BYTE)
- ) SEGMENT CREATION IMMEDIATE
- PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- REM INSERTING INTO RMSBD.CUSTOMERS
- SET DEFINE OFF;
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('1','Owner','Owner','Owner@owner.com','579233B2C479241523CBA5E3AF55D0F50F2D6414');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('2','Andrzej','Kowalski','akowalski@gmail.com','8BBDC4B5F61A5A705B3518DC040ADA37713403CC');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('3','Mariusz','Andrzejewski','mandzrejowski@gmail.com','FF12BBD8C907AF067070211D87BDF098BE17375B');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('4','Agata','Suchecka','asuchecka@gmail.com','7549B188CC4392E4FFD486E64E40EA2235CDED2F');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('5','Janusz','Jankowski','jjankowski@gmail.com','D7E01E54E3E905B6AF66E65B4C1316658183C87E');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('6','Stefan','Zak','szak@gmail.com','D209C5D1176C46535028011E82A5DE574065A32A');
- INSERT INTO RMSBD.CUSTOMERS (ID,NAME,SURNAME,EMAIL,PASSWORD) VALUES ('7','Ula','Nowakowska','unowakowska@gmail.com','D60CFC3338266031FC203582250A585FB4AF7809');
- REM INSERTING INTO RMSBD.EMAILS_QUEUE
- SET DEFINE OFF;
- INSERT INTO RMSBD.EMAILS_QUEUE (ID,HTML,DESTINATION) VALUES (4,'<html>czesc ! twoje zamowienie zostalo zlozone','Owner@owner.com');
- INSERT INTO RMSBD.EMAILS_QUEUE (ID,HTML,DESTINATION) VALUES (5,'<html>czesc ! twoje zamowienie zostalo zlozone','Owner@owner.com');
- INSERT INTO RMSBD.EMAILS_QUEUE (ID,HTML,DESTINATION) VALUES (2,'<html>czesc ! twoje zamowienie zostalo zlozone','Owner@owner.com');
- INSERT INTO RMSBD.EMAILS_QUEUE (ID,HTML,DESTINATION) VALUES (3,'<html>czesc ! twoje zamowienie zostalo zlozone','Owner@owner.com');
- INSERT INTO RMSBD.EMAILS_QUEUE (ID,HTML,DESTINATION) VALUES (1,'<html>czesc ! twoje zamowienie zostalo zlozone','mandzrejowski@gmail.com');
- REM INSERTING INTO RMSBD.ORDERS
- SET DEFINE OFF;
- INSERT INTO RMSBD.ORDERS (ID,CUSTOMER_ID,TYPE) VALUES (4,1,1);
- INSERT INTO RMSBD.ORDERS (ID,CUSTOMER_ID,TYPE) VALUES (5,1,1);
- INSERT INTO RMSBD.ORDERS (ID,CUSTOMER_ID,TYPE) VALUES (2,1,1);
- INSERT INTO RMSBD.ORDERS (ID,CUSTOMER_ID,TYPE) VALUES (3,1,1);
- INSERT INTO RMSBD.ORDERS (ID,CUSTOMER_ID,TYPE) VALUES (1,3,2);
- REM INSERTING INTO RMSBD.ORDERS_PRODUCTS
- SET DEFINE OFF;
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (9,3,2);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (10,3,3);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (11,4,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (12,4,2);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (13,4,3);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (14,5,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (15,5,2);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (16,5,3);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (5,2,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (6,2,2);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (7,2,3);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (8,3,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (1,1,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (2,1,1);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (3,1,3);
- INSERT INTO RMSBD.ORDERS_PRODUCTS (ID,ORDER_ID,PRODUCT_ID) VALUES (4,1,2);
- REM INSERTING INTO RMSBD.ORDERS_STATUS
- SET DEFINE OFF;
- INSERT INTO RMSBD.ORDERS_STATUS (ID,NAME,ESTABLISH_TIME,ORDER_ID) VALUES (4,'PREPARING',TO_DATE('04-APR-16','DD-MON-RR'),4);
- INSERT INTO RMSBD.ORDERS_STATUS (ID,NAME,ESTABLISH_TIME,ORDER_ID) VALUES (5,'PREPARING',TO_DATE('04-APR-16','DD-MON-RR'),5);
- INSERT INTO RMSBD.ORDERS_STATUS (ID,NAME,ESTABLISH_TIME,ORDER_ID) VALUES (2,'PREPARING',TO_DATE('04-APR-16','DD-MON-RR'),2);
- INSERT INTO RMSBD.ORDERS_STATUS (ID,NAME,ESTABLISH_TIME,ORDER_ID) VALUES (3,'PREPARING',TO_DATE('04-APR-16','DD-MON-RR'),3);
- INSERT INTO RMSBD.ORDERS_STATUS (ID,NAME,ESTABLISH_TIME,ORDER_ID) VALUES (1,'PREPARING',TO_DATE('04-APR-16','DD-MON-RR'),1);
- REM INSERTING INTO RMSBD.PRODUCTS
- SET DEFINE OFF;
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (1,'koszulka',1,1,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (2,'koszulka',2,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (3,'koszulka',1,3,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (4,'koszulka',2,1,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (5,'koszulka',1,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (6,'bluza',7,1,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (7,'bluza',15,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (8,'bluza',5,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (9,'bluza',13,3,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (10,'bluza',21,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (11,'bluza',14,3,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (12,'spodnie',21,3,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (13,'spodnie',12,1,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (14,'spodnie',11,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (15,'buty',28,3,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (16,'buty',34,2,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (17,'rekawiczki',1,1,NULL);
- INSERT INTO RMSBD.PRODUCTS (ID,NAME,WEIGHT,WAREHOUSE_ID,PRICE) VALUES (18,'rekawiczki',1,2,NULL);
- REM INSERTING INTO RMSBD.WAREHOUSE
- SET DEFINE OFF;
- INSERT INTO RMSBD.WAREHOUSE (ID,NAME,ADRESS) VALUES (1,'dabrowskiego#1','dabrowskiego 255 Lodz');
- INSERT INTO RMSBD.WAREHOUSE (ID,NAME,ADRESS) VALUES (2,'dabrowskiego#2','dabrowskiego 205 Lodz');
- INSERT INTO RMSBD.WAREHOUSE (ID,NAME,ADRESS) VALUES (3,'lodowa#1','lodowa 3 Lodz');
- --------------------------------------------------------
- -- DDL for Index ORDERS_OUTCOMING_ID_UINDEX
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."ORDERS_OUTCOMING_ID_UINDEX" ON "RMSBD"."ORDERS" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index CUSTOMERS_ID_UINDEX
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."CUSTOMERS_ID_UINDEX" ON "RMSBD"."CUSTOMERS" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index MAGAZINES_PK
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."MAGAZINES_PK" ON "RMSBD"."WAREHOUSE" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index ORDERS_STATUS_PK
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."ORDERS_STATUS_PK" ON "RMSBD"."ORDERS_STATUS" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index PRODUCT_PK
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."PRODUCT_PK" ON "RMSBD"."PRODUCTS" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index ORDER_PRODUCTS_PK
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."ORDER_PRODUCTS_PK" ON "RMSBD"."ORDERS_PRODUCTS" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- DDL for Index EMAILS_QUEUE_PK
- --------------------------------------------------------
- CREATE UNIQUE INDEX "RMSBD"."EMAILS_QUEUE_PK" ON "RMSBD"."EMAILS_QUEUE" ("ID")
- PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ;
- --------------------------------------------------------
- -- Constraints for Table CUSTOMERS
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."CUSTOMERS" MODIFY ("SURNAME" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."CUSTOMERS" MODIFY ("NAME" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."CUSTOMERS" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table PRODUCTS
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."PRODUCTS" ADD CONSTRAINT "PRODUCT_PK" PRIMARY KEY ("ID")
- USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ENABLE;
- ALTER TABLE "RMSBD"."PRODUCTS" MODIFY ("NAME" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."PRODUCTS" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table ORDERS_STATUS
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."ORDERS_STATUS" ADD CONSTRAINT "ORDERS_STATUS_PK" PRIMARY KEY ("ID")
- USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ENABLE;
- ALTER TABLE "RMSBD"."ORDERS_STATUS" MODIFY ("ESTABLISH_TIME" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."ORDERS_STATUS" MODIFY ("NAME" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."ORDERS_STATUS" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table ORDERS
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."ORDERS" ADD CONSTRAINT "TYPE_CONSTRAINT" CHECK (TYPE IN (1, 2)) ENABLE;
- ALTER TABLE "RMSBD"."ORDERS" MODIFY ("CUSTOMER_ID" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."ORDERS" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table ORDERS_PRODUCTS
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."ORDERS_PRODUCTS" ADD CONSTRAINT "ORDER_PRODUCTS_PK" PRIMARY KEY ("ID")
- USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ENABLE;
- ALTER TABLE "RMSBD"."ORDERS_PRODUCTS" MODIFY ("PRODUCT_ID" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."ORDERS_PRODUCTS" MODIFY ("ORDER_ID" NOT NULL ENABLE);
- ALTER TABLE "RMSBD"."ORDERS_PRODUCTS" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table EMAILS_QUEUE
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."EMAILS_QUEUE" ADD CONSTRAINT "EMAILS_QUEUE_PK" PRIMARY KEY ("ID")
- USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ENABLE;
- ALTER TABLE "RMSBD"."EMAILS_QUEUE" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- Constraints for Table WAREHOUSE
- --------------------------------------------------------
- ALTER TABLE "RMSBD"."WAREHOUSE" ADD CONSTRAINT "MAGAZINES_PK" PRIMARY KEY ("ID")
- USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
- STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
- TABLESPACE "USERS" ENABLE;
- ALTER TABLE "RMSBD"."WAREHOUSE" MODIFY ("ID" NOT NULL ENABLE);
- --------------------------------------------------------
- -- DDL for Trigger NEW_ORDER_STATUS
- --------------------------------------------------------
- CREATE OR REPLACE TRIGGER "RMSBD"."NEW_ORDER_STATUS"
- AFTER INSERT ON ORDERS
- FOR EACH ROW
- DECLARE
- auto_incremnted_id NUMBER(6);
- BEGIN
- SELECT COUNT(*) + 1
- INTO auto_incremnted_id FROM ORDERS_STATUS;
- INSERT INTO orders_status (id,NAME,order_id) VALUES(auto_incremnted_id,'PREPARING',:NEW.ID);
- DBMS_OUTPUT.put_line('TRIGGER: dodano nowy status zamowienia (PREPARING) dla zamowienia ' || :NEW.ID);
- END;
- /
- ALTER TRIGGER "RMSBD"."NEW_ORDER_STATUS" ENABLE;
- --------------------------------------------------------
- -- DDL for Trigger SEND_CONFIRMATION_ORDER
- --------------------------------------------------------
- CREATE OR REPLACE TRIGGER "RMSBD"."SEND_CONFIRMATION_ORDER"
- BEFORE INSERT ON ORDERS
- FOR EACH ROW
- DECLARE
- user_email VARCHAR2(25);
- BEGIN
- SELECT CUSTOMERS.EMAIL INTO user_email FROM CUSTOMERS WHERE CUSTOMERS.ID = :NEW.customer_id;
- SEND_EMAIL('<html>czesc ! twoje zamowienie zostalo zlozone', user_email);
- END;
- /
- ALTER TRIGGER "RMSBD"."SEND_CONFIRMATION_ORDER" ENABLE;
- --------------------------------------------------------
- -- DDL for Trigger UPDATE_STATUS_DATE
- --------------------------------------------------------
- CREATE OR REPLACE TRIGGER "RMSBD"."UPDATE_STATUS_DATE"
- BEFORE INSERT OR UPDATE
- ON ORDERS_STATUS
- FOR EACH ROW
- DECLARE
- BEGIN
- :NEW.ESTABLISH_TIME := SYSDATE;
- DBMS_OUTPUT.put_line('TRIGGER: zaktualizowano date statusu zamowienia nr ' || :NEW.id);
- END;
- /
- ALTER TRIGGER "RMSBD"."UPDATE_STATUS_DATE" ENABLE;
- --------------------------------------------------------
- -- DDL for Function ARE_CREDENTIALS_CORRECT
- --------------------------------------------------------
- CREATE OR REPLACE FUNCTION "RMSBD"."ARE_CREDENTIALS_CORRECT"
- (
- USER_EMAIL IN VARCHAR2
- , USER_PASSWORD IN VARCHAR2
- ) RETURN NUMBER AS
- hashedPass RAW(20);
- is_match NUMBER(1);
- BEGIN
- hashedPass := SYS.dbms_crypto.hash(
- src => UTL_I18N.STRING_TO_RAW(USER_PASSWORD),
- typ => sys.dbms_crypto.hash_sh1
- );
- is_match:=0;
- SELECT COUNT(customers.id) INTO is_match FROM customers WHERE customers.email = USER_EMAIL AND customers.password=hashedPass;
- IF (is_match = 1) THEN
- DBMS_OUTPUT.put_line('FUNCTION: podane haslo ' || USER_PASSWORD || '(' || hashedPass || ' zgadza sie z zaszyfrowanym');
- ELSE
- DBMS_OUTPUT.put_line('FUNCTION: podane haslo ' || USER_PASSWORD || '(' || hashedPass || ' nie zgadza sie z zaszyfrowanym' );
- END IF;
- RETURN is_match;
- END ARE_CREDENTIALS_CORRECT;
- /
- --------------------------------------------------------
- -- DDL for Function GET_INCOMING_ORDERS_VALUE
- --------------------------------------------------------
- CREATE OR REPLACE FUNCTION "RMSBD"."GET_INCOMING_ORDERS_VALUE" RETURN NUMBER AS
- total_price NUMBER;
- BEGIN
- SELECT SUM(price) INTO total_price FROM ORDERS_PRODUCTS
- inner join products ON products.id = orders_products.product_id;
- SELECT SUM(price) INTO total_price FROM ORDERS_PRODUCTS
- inner join products ON products.id = orders_products.product_id
- WHERE EXISTS (SELECT 1 FROM orders WHERE orders_products.order_id = orders.id AND orders.TYPE=1);
- DBMS_OUTPUT.put_line('FUNCTION: Calkowita wartosc produktow incoming (zamowionych do magazynu) to' || total_price);
- RETURN total_price;
- END GET_INCOMING_ORDERS_VALUE;
- /
- --------------------------------------------------------
- -- DDL for Function GET_OUTCOMING_ORDERS_VALUE
- --------------------------------------------------------
- CREATE OR REPLACE FUNCTION "RMSBD"."GET_OUTCOMING_ORDERS_VALUE" RETURN VARCHAR2 AS
- total_price NUMBER;
- BEGIN
- SELECT SUM(price) INTO total_price FROM ORDERS_PRODUCTS
- inner join products ON products.id = orders_products.product_id
- WHERE EXISTS (SELECT 1 FROM orders WHERE orders_products.order_id = orders.id AND orders.TYPE=2);
- DBMS_OUTPUT.put_line('FUNCTION: Calkowita wartosc produktow outcoming (zamowionych z magazynu) to' || total_price);
- RETURN total_price;
- END GET_OUTCOMING_ORDERS_VALUE;
- /
- --------------------------------------------------------
- -- DDL for Procedure ADD_CUSTOMER
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ADD_CUSTOMER"
- (
- NAME IN customers.name%TYPE
- , SURNAME IN customers.surname%TYPE
- , EMAIL IN customers.email%TYPE
- , PASSWORD IN VARCHAR2
- ) IS
- lastEmptyId NUMBER;
- hashedPass RAW(20);
- BEGIN
- hashedPass := SYS.dbms_crypto.hash(
- src => UTL_I18N.STRING_TO_RAW(password),
- typ => sys.dbms_crypto.hash_sh1
- );
- SELECT COUNT(*)
- INTO lastEmptyId
- FROM customers;
- DBMS_OUTPUT.put_line('PROCEDURE: zaszyfrowano haslo uzytkownika ' || PASSWORD || ' -> ' || hashedPass);
- INSERT INTO customers (customers.ID,customers.NAME,customers.SURNAME,customers.EMAIL,customers.password) VALUES (lastEmptyId+1,NAME,SURNAME,email,hashedPass);
- DBMS_OUTPUT.put_line('PROCEDURE: stworzono uzytkownika ' || NAME || ' ' || surname);
- END ADD_CUSTOMER;
- /
- --------------------------------------------------------
- -- DDL for Procedure ADD_ORDER
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ADD_ORDER"
- (
- CUSTOMER_ID IN NUMBER
- , ORDER_ID OUT NUMBER
- , ORDER_TYPE IN orders.type%TYPE
- ) AS
- BEGIN
- SELECT COUNT(*) + 1
- INTO ORDER_ID FROM ORDERS;
- INSERT INTO ORDERS (id,customer_id,TYPE) VALUES(ORDER_ID,CUSTOMER_ID,ORDER_TYPE);
- DBMS_OUTPUT.put_line('PROCEDURE: dodano nowe zamowienie id :' || ORDER_ID || ' dla uzytkownika ' || CUSTOMER_ID || ' o typie' || ORDER_TYPE);
- END ADD_ORDER;
- /
- --------------------------------------------------------
- -- DDL for Procedure ADD_PRODUCT
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ADD_PRODUCT"
- (
- PRODUCT_NAME IN VARCHAR2
- , PRODUCT_WEIGHT IN VARCHAR2
- , WAREHOUSE_ID IN VARCHAR2
- ) AS
- auto_incremnted_id NUMBER(6);
- BEGIN
- SELECT COUNT(*) + 1
- INTO auto_incremnted_id
- FROM PRODUCTS;
- INSERT INTO PRODUCTS (PRODUCTS.id,PRODUCTS.name,PRODUCTS.weight,PRODUCTS.warehouse_id)
- VALUES(auto_incremnted_id,PRODUCT_NAME,PRODUCT_WEIGHT,WAREHOUSE_ID);
- DBMS_OUTPUT.put_line('PROCEDURE: dodano produkt ' || PRODUCT_NAME || ' do magazynu nr ' || WAREHOUSE_ID);
- END ADD_PRODUCT;
- /
- --------------------------------------------------------
- -- DDL for Procedure ADD_PRODUCT_TO_ORDER
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ADD_PRODUCT_TO_ORDER"
- (
- ORD_ID IN NUMBER
- , PROD_ID IN NUMBER
- ) AS
- auto_incremnted_id NUMBER(6);
- BEGIN
- SELECT COUNT(*) + 1
- INTO auto_incremnted_id FROM ORDERS_PRODUCTS;
- INSERT INTO ORDERS_PRODUCTS (id,ORDERS_PRODUCTS.ORDER_ID,ORDERS_PRODUCTS.PRODUCT_ID) VALUES(auto_incremnted_id,ORD_ID,PROD_ID);
- DBMS_OUTPUT.put_line('PROCEDURE: dodano nowy produkt :' || PROD_ID || ' do zamowienia ' || ORD_ID);
- END ADD_PRODUCT_TO_ORDER;
- /
- --------------------------------------------------------
- -- DDL for Procedure ADD_WAREHOUSE
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ADD_WAREHOUSE"
- (
- WAREHOUSE_NAME IN VARCHAR2
- , WAREHOUSE_ADDR IN VARCHAR2
- ) AS
- auto_incremnted_id NUMBER(6);
- BEGIN
- SELECT COUNT(*) + 1
- INTO auto_incremnted_id
- FROM WAREHOUSE;
- INSERT INTO WAREHOUSE (WAREHOUSE.id,WAREHOUSE.name,WAREHOUSE.adress)
- VALUES(auto_incremnted_id,WAREHOUSE_NAME,WAREHOUSE_ADDR);
- DBMS_OUTPUT.put_line('PROCEDURE: dodano magazyn ' || WAREHOUSE_NAME || ' o adresie ' || WAREHOUSE_ADDR);
- END ADD_WAREHOUSE;
- /
- --------------------------------------------------------
- -- DDL for Procedure CHECK_MISSING_PRODUCTS
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."CHECK_MISSING_PRODUCTS" AS
- products_incoming_amount NUMBER;
- products_outcoming_amount NUMBER;
- generated_order_id NUMBER;
- BEGIN
- SELECT COUNT(*) INTO products_incoming_amount FROM orders WHERE orders.TYPE=1;
- SELECT COUNT(*) INTO products_outcoming_amount FROM orders WHERE orders.TYPE=2;
- DBMS_OUTPUT.PUT_LINE('PROCEDURE-SHEDULER: Produkty incoming: ' || products_incoming_amount || '. Produkty outcoming: ' || products_outcoming_amount);
- IF products_incoming_amount-products_outcoming_amount < 3 THEN
- DBMS_OUTPUT.put_line('PROCEDURE-SHEDULER: Wykryto niedobor produktow zamaiwanie nowych!');
- ADD_ORDER(1,generated_order_id,1);
- FOR i IN 1..3 LOOP
- ADD_PRODUCT_TO_ORDER(generated_order_id,i);
- END LOOP;
- END IF;
- END CHECK_MISSING_PRODUCTS;
- /
- --------------------------------------------------------
- -- DDL for Procedure ORDER_MISSING_PRODUCTS
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."ORDER_MISSING_PRODUCTS" AS
- BEGIN
- DBMS_OUTPUT.PUT_LINE('Ordering missing products');
- -- add_product('wygernowany',21,1);
- END ORDER_MISSING_PRODUCTS;
- /
- --------------------------------------------------------
- -- DDL for Procedure SEND_EMAIL
- --------------------------------------------------------
- SET define off;
- CREATE OR REPLACE PROCEDURE "RMSBD"."SEND_EMAIL"
- (
- html IN VARCHAR2 ,
- DESTINATION IN VARCHAR2
- ) AS
- auto_incremnted_id NUMBER(6);
- BEGIN
- SELECT COUNT(*) + 1
- INTO auto_incremnted_id
- FROM EMAILS_QUEUE;
- INSERT INTO EMAILS_QUEUE (EMAILS_QUEUE.id,EMAILS_QUEUE.html,EMAILS_QUEUE.DESTINATION)
- VALUES(auto_incremnted_id,html,DESTINATION);
- DBMS_OUTPUT.put_line('wysylanie email do ' || DESTINATION || ' o zawartosci ' || html);
- END SEND_EMAIL;
- /
- --END;
Add Comment
Please, Sign In to add comment