Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
-- EMPLOYEE to DEPARTMENT
ALTER TABLE EMPLOYEE
ADD CONSTRAINT department
FOREIGN KEY (deptno)
REFERENCES DEPARTMENT (deptno);
-- EMPLOYEE to EMPLOYEE
ALTER TABLE EMPLOYEE
ADD CONSTRAINT boss
FOREIGN KEY (boss)
REFERENCES EMPLOYEE (empno);
-- EMPLOYEE to PROJECT_PARTICIPATION
ALTER TABLE PROJECT_PARTICIPATION
ADD CONSTRAINT employee
FOREIGN KEY (empno)
REFERENCES EMPLOYEE (empno);
-- PROJECT to PROJECT_PARTICIPATION
ALTER TABLE PROJECT_PARTICIPATION
ADD CONSTRAINT project
FOREIGN KEY (projectno)
REFERENCES PROJECT (projectno);
-- ROLE to PROJECT_PARTICIPATION
ALTER TABLE PROJECT_PARTICIPATION
ADD CONSTRAINT role
FOREIGN KEY (role_id)
REFERENCES ROLE (role_id);
======================================================================
-- data
INSERT INTO DEPARTMENT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPARTMENT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPARTMENT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPARTMENT VALUES (40, 'OPERATIONS', 'BOSTON');
====================================================================
-------------------------------------------------
HELP index
? function
Show user
https://www.youtube.com/watch?v=0AHGgfYuFi8#t=614.751325
You may use this link
http://www.java2s.com/Code/Oracle/Stored-Procedure-Function/CatalogStored-
Procedure-Function.htm
subject: procedures
Example -1
SQL>
set serverout on;
SQL>
SQL> -- Displaying "Hello World!" to the screen.
Default values
create or replace
procedure default_values(
p_parm1 varchar2,
p_parm2 varchar2 default 'AAA',
p_parm3 varchar2 default 'BBB' ) as
begin
dbms_output.put_line( p_parm1 );
dbms_output.put_line( p_parm2 );
dbms_output.put_line( p_parm3 );
end default_values;
/
Procedure created.
SQL>
SQL> set serverout on
SQL>
SQL> exec default_values( 'Tom', p_parm3 => 'Joe' );
Tom
AAA
Joe
Example 3:
SQL>
SQL>
Table created.
Note:check to_date function in your system
SQL>
SQL> INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902,TO_DATE('17-01-
2017'), 800, NULL, 20);
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL>
Example 4:
Table created.
SQL>
CREATE OR REPLACE PROCEDURE AddNewBook(
p_ISBN IN book.ISBN%TYPE,
p_Category IN book.category%TYPE := 'Oracle Server',
p_Title IN book.title%TYPE,
p_NumPages IN book.num_pages%TYPE,
p_Price IN book.price%TYPE,
p_Copyright IN book.copyright%TYPE DEFAULT TO_NUMBER(TO_CHAR(SYSDATE,
'YYYY')),
p_emp1 IN book.emp1%TYPE,
p_emp2 IN book.emp2%TYPE := NULL,
p_emp3 IN book.emp3%TYPE := NULL) AS
BEGIN
INSERT INTO book (isbn, category, title, num_pages, price,copyright,
emp1, emp2, emp3)
VALUES (p_ISBN, p_Category, p_Title, p_NumPages, p_Price,p_Copyright,
p_emp1, p_emp2, p_emp3);
END AddNewBook;
/
P BEGIN
AddNewBook('0', 'Database', 'A Book',5, 34.99, 2004, 1);
END;
rocedure created.
SQL>
BEGIN
AddNewBook('4', 'Database', 'A Book',5, 34.99, 2004, 1);
END;
/
SQL>
SQL> drop table book;
Table dropped.
8 rows selected.
DECLARE
v_username varchar2(10);
BEGIN
END;
/
SQL>
SQL> delete from employee;
8 rows deleted.
SQL>
SQL> select * from employee_audit;
8 rows selected.
SQL>
SQL> drop table employee_audit;
Table dropped.
DECLARE
v_username varchar2(10);
BEGIN
-- Find username of person performing the INSERT into the table
SELECT user INTO v_username
FROM dual;
dbms_output.put_line('By: '||v_username);
dbms_output.put_line(':new.id: '||:new.id);
dbms_output.put_line(':new.first_name: '||:new.first_name);
dbms_output.put_line(':new.last_name: '||:new.last_name);
dbms_output.put_line(':old.id: '||:old.id);
dbms_output.put_line(':old.first_name: '||:old.first_name);
dbms_output.put_line(':old.last_name: '||:old.last_name);
END;
/
insert into Employee(ID, First_Name, Last_Name, Start_Date,
End_Date, Salary, City, Description)
values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'),
to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer')
insert into Employee(ID, First_Name, Last_Name, Start_Date,
End_Date, Salary, City, Description)
values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'),
to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester')
select sname from students where sid= ALL (select sid from enroll
where cid=252 and gpa>3);