Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- drop table uzytkownik_Chat;
- drop table chat;
- drop table post;
- drop table temat;
- drop table uzytkownik;
- drop table uzytkownik_Role;
- drop table kategoria;
- CREATE TABLE uzytkownik_Role (
- uzytkownik_roleid NUMBER(5) NOT NULL,
- role_name VARCHAR(45),
- PRIMARY KEY(uzytkownik_roleid)
- );
- drop sequence rola_seqq;
- CREATE SEQUENCE rola_seqq START WITH 1;
- CREATE OR REPLACE TRIGGER rola_before
- BEFORE INSERT ON uzytkownik_Role
- FOR EACH ROW
- BEGIN
- SELECT rola_seqq.NEXTVAL
- INTO :new.uzytkownik_roleid
- FROM dual;
- END;
- /
- CREATE TABLE kategoria (
- kategoria_id NUMBER(5) NOT NULL,
- kategoria_name VARCHAR(45),
- PRIMARY KEY(kategoria_id)
- );
- drop sequence kategoria_seq;
- CREATE SEQUENCE kategoria_seq start with 1;
- CREATE OR REPLACE TRIGGER kategoria_before
- BEFORE INSERT ON kategoria
- FOR EACH ROW
- BEGIN
- SELECT kategoria_seq.NEXTVAL
- INTO :new.kategoria_id
- FROM dual;
- END;
- /
- CREATE TABLE uzytkownik (
- uzytkownik_id NUMBER(5) NOT NULL,
- uzytkownik_roleid NUMBER(5) NOT NULL,
- Username Varchar(45),
- firstName VARCHAR(45),
- LastName VARCHAR(45),
- Haslo Varchar(45),
- ranga VARCHAR(45),
- email VARCHAR(45),
- address VARCHAR(45),
- mobilePhone NUMBER(8),
- age NUMBER(3),
- ostatnia date,
- PRIMARY KEY (uzytkownik_id),
- FOREIGN KEY(uzytkownik_roleid) REFERENCES uzytkownik_Role(uzytkownik_roleid) ON DELETE CASCADE
- );
- drop sequence uzytkownik_seq;
- CREATE SEQUENCE uzytkownik_seq;
- CREATE OR REPLACE TRIGGER uzytkownik_before
- BEFORE INSERT ON uzytkownik
- FOR EACH ROW
- BEGIN
- :NEW.UZYTKOWNIK_ID :=uzytkownik_SEQ.NEXTVAL;
- END;
- /
- CREATE TABLE temat (
- temat_id NUMBER(5) NOT NULL,
- uzytkownik_id NUMBER(5) NOT NULL,
- kategoria_id NUMBER(5) NOT NULL,
- tematName Varchar(25),
- datadodania TIMESTAMP Not null,
- PRIMARY KEY (temat_id),
- FOREIGN KEY(uzytkownik_id) REFERENCES uzytkownik(uzytkownik_id) ON DELETE CASCADE,
- FOREIGN KEY(kategoria_id) REFERENCES kategoria(kategoria_id) ON DELETE CASCADE
- );
- drop sequence temat_seq;
- CREATE SEQUENCE temat_seq start with 1;
- CREATE OR REPLACE TRIGGER temat_before
- BEFORE INSERT ON temat
- FOR EACH ROW
- BEGIN
- SELECT temat_seq.NEXTVAL
- INTO :new.temat_id
- FROM dual;
- END;
- /
- CREATE TABLE post (
- post_id NUMBER(5) NOT NULL,
- temat_id NUMBER(5) NOT NULL,
- uzytkownik_id NUMBER(5) NOT NULL,
- contentt VARCHAR(450),
- DATA_DODANIA TIMESTAMP Not null,
- PRIMARY KEY (post_id),
- FOREIGN KEY(uzytkownik_id) REFERENCES uzytkownik(uzytkownik_id) ON DELETE CASCADE,
- FOREIGN KEY(temat_id) REFERENCES temat(temat_id) ON DELETE CASCADE
- );
- drop sequence post_seq;
- CREATE SEQUENCE post_seq start with 1;
- CREATE OR REPLACE TRIGGER post_before
- BEFORE INSERT ON post
- FOR EACH ROW
- BEGIN
- SELECT post_seq.NEXTVAL
- INTO :new.post_id
- FROM dual;
- END;
- /
- CREATE TABLE chat (
- chat_id NUMBER(5) NOT NULL,
- message VARCHAR(45),
- uzytkownik_id NUMBER(5) NOT NULL,
- PRIMARY KEY (chat_id)
- );
- /
- drop sequence chat_seq;
- CREATE SEQUENCE chat_seq start with 1;
- CREATE OR REPLACE TRIGGER chat_before
- BEFORE INSERT ON chat
- FOR EACH ROW
- BEGIN
- SELECT chat_seq.NEXTVAL
- INTO :new.chat_id
- FROM dual;
- END;
- /
- CREATE TABLE uzytkownik_Chat (
- uzytkownik_id NUMBER(5) NOT NULL,
- chat_id NUMBER(5) NOT NULL,
- FOREIGN KEY(uzytkownik_id) REFERENCES uzytkownik(uzytkownik_id) ON DELETE CASCADE,
- FOREIGN KEY(chat_id) REFERENCES chat(chat_id)
- );
- insert into uzytkownik_Role values('', 'User');
- insert into uzytkownik_Role values('', 'Admin');
- insert into uzytkownik_Role values('', 'Moderator');
- insert into uzytkownik values('','1','Patryko', 'Patryk', 'Brzuchacz','Haselko1' , 'Nowy','otspatryk', 'Piwoda', '12345','20',TO_DATE('2018/05/16 09:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into uzytkownik values('','1','Olafo', 'Ola', 'Żolyniak','Haselko2' ,'Nowy', 'olkk', 'Piwoda', '010101','20',TO_DATE('2018/05/17 09:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into uzytkownik values('','2', 'Admino' ,'Admin', 'adm','Adminowehaslo1' , 'ADMIN','adminmalpa', 'rzeszow', '8080','2',TO_DATE('2018/05/18 09:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into uzytkownik values('','3','Modero', 'Mod', 'modek','Modowehaslo1' ,'MODERATOR', 'modemalpa', 'krakow', '098431','3',TO_DATE('2018/05/19 09:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into kategoria values('', 'Pytania');
- insert into kategoria values('', 'Poradniki');
- insert into kategoria values('', 'Przedstaw sie!');
- insert into temat values('','1','1','Czy nadaje sie na?',TO_DATE('2018/05/16 04:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into temat values('', '1' , '1', 'Java vs c#?',TO_DATE('2018/05/16 05:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into temat values('','3','2', 'Poradnik do pl/sql',TO_DATE('2018/05/16 06:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into temat values('','4','2', 'Poradnik do javy',TO_DATE('2018/05/16 07:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into temat values('','1','3', 'Czesc jestem Patryk',TO_DATE('2018/05/16 08:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into temat values('','2','3', 'Czesc jestem Ola',TO_DATE('2018/05/16 09:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','1','1', 'czy nadaje sie na programiste javy??',TO_DATE('2018/05/16 03:20:15', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','1','2', 'jesli masz dosc checi to wszystko jest mozliwe',TO_DATE('2018/05/16 09:30:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','1','1', 'ok to sprobuje!', TO_DATE('2018/05/17 10:22:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','2','1', 'co lepsze, java czy c#?', TO_DATE('2018/05/17 11:22:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','2','3', 'java lepsza:)', TO_DATE('2018/05/17 12:22:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','3','3', 'przygotowalem dla was poradnik do pl/sql', TO_DATE('2018/05/17 11:12:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','3','2', 'dzieki! nigdzie tego nie bylo!', TO_DATE('2018/05/19 10:42:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','4','4', 'przygotowalem poradnik do javy!', TO_DATE('2018/05/19 10:52:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','4','1', 'dzieki ale tego jest mnostwo!', TO_DATE('2018/05/19 12:22:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','5','1', 'Jestem Patryk, milo poznac', TO_DATE('2018/05/20 10:18:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','5','2', 'hej, mi Ciebie tez! ', TO_DATE('2018/05/20 10:32:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','6','2', 'Jestem Ola, milo poznac', TO_DATE('2018/05/20 12:42:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into post values('','6','1', 'hej, mi Ciebie tez! ', TO_DATE('2018/05/22 11:22:25', 'YYYY/MM/DD HH:MI:SS'));
- insert into chat values('','tu mozna sobie pogadac', '3');
- insert into uzytkownik_chat values('3','1');
- CREATE OR REPLACE TRIGGER post_bef
- BEFORE INSERT ON post
- FOR EACH ROW
- BEGIN
- :NEW.DATA_DODANIA := SYSDATE;
- END;
- /
- CREATE OR REPLACE TRIGGER temat_bef
- BEFORE INSERT ON temat
- FOR EACH ROW
- BEGIN
- :NEW.DATADODANIA :=SYSDATE;
- END;
- /
- create or replace package funkcje is
- FUNCTION totalUsers RETURN number;
- FUNCTION LASTPOSTDATE2(UZYTKOWNIKID IN NUMBER) return date;
- FUNCTION totalCategories RETURN number;
- FUNCTION totalPOSTS2(UZYTKOWNIKID IN NUMBER) RETURN number;
- FUNCTION totalMessages(UZYTKOWNIKID IN NUMBER) RETURN number;
- FUNCTION pokazPosty(IDU NUMBER) RETURN SYS_REFCURSOR ;
- FUNCTION pokazUzytkownikow(IDU NUMBER) RETURN SYS_REFCURSOR;
- FUNCTION pokazTematy(IDU NUMBER) RETURN SYS_REFCURSOR ;
- FUNCTION LASTPOSTDATE(UZYTKOWNIKID IN NUMBER) return date;
- function ostatniaaktywnosc(Uzytkownikid in Number) return date ;
- FUNCTION LASTTOPICDATE(UZYTKOWNIKID IN NUMBER) return date ;
- FUNCTION totalTOPICS2(UZYTKOWNIKID IN NUMBER) RETURN number;
- FUNCTION totalPosts RETURN number;
- FUNCTION totalTopics RETURN number;
- Function wszystkie return number;
- end;
- /
- create or replace package procedury is
- procedure ADD_UZYTKOWNIK(uzytkownik_roleid NUMBER,Username2 Varchar, firstName VARCHAR, LastName VARCHAR,Haslo Varchar,Haslopowtorz Varchar, email VARCHAR, address VARCHAR,
- mobilePhone Number, age NUMBER);
- PROCEDURE ADD_POST(tematid NUMBER, uzytkownikid NUMBER, contenttt Varchar);
- PROCEDURE ADD_KATEGORIA(kategoria_name VARCHAR);
- PROCEDURE ADD_TEMAT( uzytkownikid NUMBER, kategoria_id NUMBER, tematName Varchar);
- PROCEDURE ADD_MESSAGE( message VARCHAR, uzytkownikid number);
- PROCEDURE ADD_ROLE( role_Name VARCHAR);
- PROCEDURE DEL_UZYTKOWNIK(idd NUMBER);
- PROCEDURE DEL_Post(idd NUMBER);
- PROCEDURE DEL_Temat(idd NUMBER);
- end;
- /
- --------------PROCEDURY--------------
- create or replace package body procedury is
- PROCEDURE ADD_UZYTKOWNIK(uzytkownik_roleid NUMBER,Username2 Varchar, firstName VARCHAR, LastName VARCHAR,Haslo Varchar,Haslopowtorz Varchar, email VARCHAR, address VARCHAR,
- mobilePhone Number, age NUMBER)
- AS uzytkownik_id2 NUMBER;
- sprawdz number:=0;
- jestliczba BOOLEAN;
- jestlitera BOOLEAN;
- x BOOLEAN; --n
- y INTEGER; --m
- roznice INTEGER;
- jestznak BOOLEAN;
- liczby VARCHAR2(20);
- znaki VARCHAR2(50);
- litery VARCHAR2(70);
- BEGIN
- litery:= 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
- liczby:= '0123456789';
- znaki:='!@#$%^&*()-_=+`~`,.<>?/;:[]{}\|';
- SELECT COUNT(*) INTO sprawdz
- FROM Uzytkownik WHERE Username = USERNAME2;
- IF sprawdz > 0 THEN raise_application_error(-20026, 'Nazwa uzytkownika zajęta! podaj inna!');
- END IF;
- IF Haslo != Haslopowtorz THEN raise_application_error(-20002, 'hasla sie od siebie roznia');
- END IF;
- IF length(Haslo)< 6 THEN raise_application_error(-20003, 'Haslo musi posiadac minimum 6 znakow');
- END IF;
- IF NLS_LOWER(Haslo) IN ('qwerty', '123456', 'account', 'user', 'password', 'oracle', 'user123', 'admin', 'login', 'password123' ) THEN
- raise_application_error(-20004, 'Haslo znajduje sie na black liscie!');
- END IF;
- jestliczba:=FALSE;
- y := length(Haslo);
- FOR i IN 1..10 LOOP
- FOR j IN 1..y LOOP
- IF substr(Haslo,j,1) = substr(liczby,i,1) THEN
- jestliczba:=TRUE;
- GOTO znajdzlitere;
- END IF;
- END LOOP;
- END LOOP;
- IF jestliczba = FALSE THEN raise_application_error(-20005, 'haslo musi miec przynajmniej jedna liczbe');
- END IF;
- <<znajdzlitere>>
- jestlitera:=FALSE;
- FOR i IN 1..length(litery) LOOP
- FOR j IN 1..y LOOP
- IF substr(Haslo,j,1) = substr(litery,i,1) THEN
- jestlitera:=TRUE;
- GOTO znajdzznak;
- END IF;
- END LOOP;
- END LOOP;
- IF jestlitera = FALSE THEN raise_application_error(-20005, 'haslo musi miec przynajmniej jedna litere!');
- END IF;
- <<znajdzznak>>
- jestznak:=FALSE;
- FOR i IN 1..length(znaki) LOOP
- FOR j IN 1..y LOOP
- IF substr(Haslo,j,1) = substr(znaki,i,1) THEN
- jestznak:=TRUE;
- GOTO hasloOk;
- END IF;
- END LOOP;
- END LOOP;
- IF jestznak = FALSE THEN raise_application_error(-20005, 'haslo musi miec przynajmniej jeden znak!');
- END IF;
- <<hasloOk>>
- INSERT INTO Uzytkownik(uzytkownik_id, uzytkownik_roleid,Username , firstName, LastName,Haslo, ranga, email, address, mobilePhone,age)
- VALUES (uzytkownik_id2,uzytkownik_roleid,Username2, firstName, LastName,Haslo, 'Nowy', email, address, mobilePhone,age);
- uzytkownik_id2 := uzytkownik_seq.CURRVAL;
- end ADD_UZYTKOWNIK;
- PROCEDURE ADD_POST(tematid NUMBER, uzytkownikid NUMBER, contenttt Varchar) AS postid NUMBER; x VARCHAR(100); y VARCHAR(100);
- BEGIN
- declare TYPE tabli IS VARRAY(355) OF Varchar(555);
- tabb tabli:=tabli(NULL,NULL);
- begin
- tabb(1):='Zaawansowany';
- tabb(2):='Nowicjusz';
- x:=Trunc((SYSDATE - LASTPOSTDATE(uzytkownikid))*100000);
- y:= 30-x;
- if totaltopics2(uzytkownikid)<1 then
- raise_application_error(-20010, 'Przed dodaniem postu przywitaj sie w dziale Przedstaw sie');
- else
- if SYSDATE - LASTPOSTDATE(uzytkownikid) < 1/(24*120) THEN
- raise_application_error(-20010, 'musisz poczekac 30sekund przed kolejnym postem! Pozostalo ' || y || 'sekund');
- end if;
- IF totalPOSTS2(uzytkownikid)>5 THEN
- INSERT INTO post( post_id, temat_id,uzytkownik_id,contentt) VALUES (postid,tematid,uzytkownikid,contenttt);
- postid:=post_seq.currval;
- UPDATE Uzytkownik
- SET ranga = tabb(1)
- where uzytkownik_id=uzytkownikid and ranga!='ADMIN' and ranga!='MODERATOR';
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- elsif totalPOSTS2(uzytkownikid)>3 THEN
- INSERT INTO post( post_id, temat_id,uzytkownik_id,contentt) VALUES (postid,tematid,uzytkownikid,contenttt);
- postid:=post_seq.currval;
- UPDATE Uzytkownik
- SET ranga = tabb(2)
- where uzytkownik_id=uzytkownikid and ranga!='ADMIN' and ranga!='MODERATOR';
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- else
- INSERT INTO post( post_id, temat_id,uzytkownik_id,contentt) VALUES (postid,tematid,uzytkownikid,contenttt);
- postid:=post_seq.currval;
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- end if;
- end if;
- end;
- END ADD_POST;
- PROCEDURE ADD_KATEGORIA(kategoria_name VARCHAR) AS katid NUMBER;
- BEGIN
- INSERT INTO kategoria( kategoria_id, kategoria_name)
- VALUES (katid,kategoria_name);
- katid:= kategoria_seq.currval;
- END ADD_KATEGORIA;
- PROCEDURE ADD_TEMAT( uzytkownikid NUMBER, kategoria_id NUMBER, tematName Varchar)
- AS
- tematid NUMBER;
- rek_user Uzytkownik%ROWTYPE;
- BEGIN
- declare type wlasny is record(
- zmienna1 Number,
- zmienna2 Number,
- zmienna3 Number,
- zaawans Varchar(50),
- x Varchar(100),
- y Varchar(100));
- obiekt1 wlasny;
- begin
- obiekt1.zmienna1:=3;
- obiekt1.zmienna2:=2;
- obiekt1.zmienna3:=1;
- obiekt1.zaawans:='Zaawansowany';
- obiekt1.x:= Trunc((SYSDATE - LASTTOPICDATE(uzytkownikid))*100000);
- obiekt1.y:= 30-obiekt1.x;
- SELECT RANGA, AGE INTO REK_USER.RANGA, REK_USER.AGE FROM UZYTKOWNIK WHERE UZYTKOWNIK_ID=UZYTKOWNIKID;
- if SYSDATE - LASTTOPICDATE(uzytkownikid) < 1/(24*120) THEN
- raise_application_error(-20010, 'musisz poczekac 30sekund przed kolejnym dodaniem tematu! Pozostalo ' || obiekt1.y || 'sekund');
- end if;
- IF kategoria_id =obiekt1.zmienna1 then
- INSERT INTO temat( temat_id,uzytkownik_id, kategoria_id, tematName )
- VALUES (tematid,uzytkownikid, kategoria_id, tematName);
- tematid:=temat_seq.currval;
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- elsif totalPOSTS2(uzytkownikid)>0 then
- if kategoria_id =obiekt1.zmienna2 and REK_USER.ranga= obiekt1.zaawans and REK_USER.age>18 then
- INSERT INTO temat( temat_id,uzytkownik_id, kategoria_id, tematName )
- VALUES (tematid,uzytkownikid, kategoria_id, tematName);
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- else raise_application_error(-20010, 'temat tylko dla zaawansowanych oraz 18+');
- end if;
- if kategoria_id = obiekt1.zmienna3 then
- INSERT INTO temat( temat_id,uzytkownik_id, kategoria_id, tematName )
- VALUES (tematid,uzytkownikid, kategoria_id, tematName);
- UPDATE Uzytkownik
- SET ostatnia = sysdate
- where uzytkownik_id=uzytkownikid;
- end if;
- else
- raise_application_error(-20010, 'musisz dodac przynajmniej 1 post oraz zalozyc temat w celu przywitania zanim napiszesz temat w innej kategorii!');
- end if;
- end;
- END ADD_TEMAT;
- PROCEDURE ADD_MESSAGE( message VARCHAR, uzytkownikid number) AS messageid NUMBER;
- BEGIN
- INSERT INTO chat( chat_id, message, uzytkownik_id)
- VALUES (messageid,message, uzytkownikid);
- messageid:=chat_seq.currval;
- END ADD_MESSAGE;
- PROCEDURE ADD_ROLE( role_Name VARCHAR) AS roleid NUMBER;
- BEGIN
- INSERT INTO uzytkownik_Role( uzytkownik_roleid, role_Name)
- VALUES (roleid,role_Name);
- roleid:=rola_seqq.currval;
- END ADD_ROLE;
- PROCEDURE DEL_UZYTKOWNIK(idd NUMBER) AS
- BEGIN
- DELETE FROM UZYTKOWNIK WHERE uzytkownik_id = idd and ranga!='ADMIN';
- END DEL_UZYTKOWNIK;
- PROCEDURE DEL_Post(idd NUMBER) AS
- BEGIN
- DELETE FROM Post WHERE post_id = idd;
- END DEL_Post;
- PROCEDURE DEL_Temat(idd NUMBER) AS
- BEGIN
- DELETE FROM Temat WHERE temat_id = idd;
- END DEL_Temat;
- END;
- /
- --- wyswietlanie za pomoca kursora
- create or replace package body funkcje is
- FUNCTION pokazTematy(IDU NUMBER)
- RETURN SYS_REFCURSOR
- AS
- MY_CURSOR SYS_REFCURSOR;
- MY_QUERY VARCHAR2(500);
- BEGIN
- MY_QUERY := q'[SELECT DISTINCT T.TEMAT_ID , T.TEMATNAME FROM TEMAT T,
- UZYTKOWNIK U
- WHERE U.UZYTKOWNIK_ID = T.UZYTKOWNIK_ID AND U.UZYTKOWNIK_ID=]' || IDU;
- OPEN MY_CURSOR FOR MY_QUERY;
- RETURN MY_CURSOR;
- END pokazTematy;
- FUNCTION pokazPosty(IDU NUMBER)
- RETURN SYS_REFCURSOR
- AS
- MY_CURSOR SYS_REFCURSOR;
- MY_QUERY VARCHAR2(500);
- BEGIN
- MY_QUERY := q'[SELECT DISTINCT P.POST_ID , P.CONTENTT FROM POST P,
- UZYTKOWNIK U
- WHERE U.UZYTKOWNIK_ID = P.UZYTKOWNIK_ID AND U.UZYTKOWNIK_ID=]' || IDU;
- OPEN MY_CURSOR FOR MY_QUERY;
- RETURN MY_CURSOR;
- END pokazPosty;
- FUNCTION pokazUzytkownikow(IDU NUMBER)
- RETURN SYS_REFCURSOR
- AS
- MY_CURSOR SYS_REFCURSOR;
- MY_QUERY VARCHAR2(500);
- BEGIN
- MY_QUERY := q'[SELECT DISTINCT U.UZYTKOWNIK_ID ,U.Username, U.FIRSTNAME,U.LASTNAME, U.RANGA, U.EMAIL,U.AGE FROM
- UZYTKOWNIK U , UZYTKOWNIK_ROLE R
- WHERE U.UZYTKOWNIK_ROLEID = R.UZYTKOWNIK_ROLEID AND R.UZYTKOWNIK_ROLEID=]' || IDU;
- OPEN MY_CURSOR FOR MY_QUERY;
- RETURN MY_CURSOR;
- END pokazUzytkownikow;
- FUNCTION totalUsers
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT count(*) into total
- FROM Uzytkownik where uzytkownik_roleid=1;
- RETURN total;
- END;
- FUNCTION totalCategories
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT count(*) into total
- FROM kategoria;
- RETURN total;
- END;
- FUNCTION totalMessages(UZYTKOWNIKID IN NUMBER)
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT DISTINCT count(*) into total
- FROM Chat c, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=c.UZYTKOWNIK_ID AND c.UZYTKOWNIK_ID=UZYTKOWNIKID;
- RETURN total;
- END;
- FUNCTION totalPOSTS2(UZYTKOWNIKID IN NUMBER)
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT DISTINCT count(*) into total
- FROM Post p, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=P.UZYTKOWNIK_ID AND P.UZYTKOWNIK_ID=UZYTKOWNIKID;
- RETURN total;
- END;
- FUNCTION LASTPOSTDATE(UZYTKOWNIKID IN NUMBER)
- return date IS
- dataposta date;
- Begin
- Select MAX(data_dodania) into dataposta
- from Post p, Uzytkownik U where U.Uzytkownik_id=p.Uzytkownik_id and U.UZYTKOWNIK_ID=UZYTKOWNIKID;
- return dataposta;
- END;
- function ostatniaaktywnosc(Uzytkownikid in Number)
- return date IS
- dataczegos date;
- dataczegos2 date;
- Begin
- Select MAX(data_dodania) into dataczegos
- from Post p, Uzytkownik U where U.Uzytkownik_id=p.Uzytkownik_id and U.UZYTKOWNIK_ID=Uzytkownikid;
- Select MAX(datadodania) into dataczegos2
- from Temat t, Uzytkownik U where U.Uzytkownik_id=t.Uzytkownik_id and U.UZYTKOWNIK_ID=Uzytkownikid;
- if dataczegos > dataczegos2 then return dataczegos;
- else return dataczegos2;
- END if;
- END;
- FUNCTION LASTTOPICDATE(UZYTKOWNIKID IN NUMBER)
- return date IS
- datatematu date;
- Begin
- Select MAX(datadodania) into datatematu
- from Temat t, Uzytkownik U where U.Uzytkownik_id=t.Uzytkownik_id and U.UZYTKOWNIK_ID=UZYTKOWNIKID;
- return datatematu;
- END;
- FUNCTION LASTPOSTDATE2(UZYTKOWNIKID IN NUMBER)
- return date IS
- dataposta date;
- Begin
- Select MAX(data_dodania) into dataposta
- from Post p, Uzytkownik U where U.Uzytkownik_id=p.Uzytkownik_id and U.UZYTKOWNIK_ID=UZYTKOWNIKID;
- return dataposta;
- END;
- FUNCTION totalTOPICS2(UZYTKOWNIKID IN NUMBER)
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT DISTINCT count(*) into total
- FROM Temat t, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=T.UZYTKOWNIK_ID AND T.UZYTKOWNIK_ID=UZYTKOWNIKID;
- RETURN total;
- END;
- FUNCTION totalPosts
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT count(*) into total
- from Post;
- RETURN total;
- END;
- FUNCTION totalTopics
- RETURN number IS
- total number(2) := 0;
- BEGIN
- SELECT count(*) into total
- from Temat;
- RETURN total;
- END;
- Function wszystkie
- return number is
- total number(2):=0;
- total2 number(2):=0;
- total3 number(2):=0;
- Begin
- SELECT Max(count(*)) into total
- FROM Temat t, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=T.UZYTKOWNIK_ID group by U.Uzytkownik_id;
- SELECT Max(count(*)) into total2
- FROM Post p, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=p.UZYTKOWNIK_ID group by U.Uzytkownik_id;
- SELECT Max(count(*)) into total3
- FROM Chat c, Uzytkownik U
- WHERE U.UZYTKOWNIK_ID=c.UZYTKOWNIK_ID group by U.Uzytkownik_id;
- RETURN total+total2+total3;
- End;
- END;
- /
- DECLARE
- type books is record
- (title varchar(50),
- author varchar(50),
- subject varchar(100),
- book_id number);
- book1 books;
- book2 books;
- BEGIN
- book1.title := 'tytul1';
- book1.author := 'autor1 ';
- book1.subject := 'przedmiot';
- book1.book_id := 6495407;
- book2.title := 'Tytul2';
- book2.author := 'Autor2';
- book2.subject := 'przedmiot2';
- book2.book_id := 6495700;
- -- Print book 1 record
- dbms_output.put_line('Book 1 title : '|| book1.title);
- dbms_output.put_line('Book 1 author : '|| book1.author);
- dbms_output.put_line('Book 1 subject : '|| book1.subject);
- dbms_output.put_line('Book 1 book_id : ' || book1.book_id);
- -- Print book 2 record
- dbms_output.put_line('Book 2 title : '|| book2.title);
- dbms_output.put_line('Book 2 author : '|| book2.author);
- dbms_output.put_line('Book 2 subject : '|| book2.subject);
- dbms_output.put_line('Book 2 book_id : '|| book2.book_id);
- END;
Add Comment
Please, Sign In to add comment