You are on page 1of 3

SELECT TEXT FROM USER_SOURCE

WHERE NAME = 'SHOW_EMPLOYEES'


ORDER BY LINE;

PROCEDURE show_employees AS
CURSOR emp_cursor IS
SELECT last_name, first_name
FROM hr.employees
ORDER BY last_name;

SELECT department_id, MIN(salary), MAX (salary)


FROM employees
GROUP BY department_id
HAVING MIN(salary) < 5000
ORDER BY department_id;

SELECT department_id, manager_id


FROM employees
GROUP BY department_id, manager_id HAVING (department_id, manager_id)
IN (SELECT department_id, manager_id FROM employees x
WHERE x.department_id = employees.department_id)
ORDER BY department_id;

SELECT DISTINCT type


FROM DBA_DEPENDENCIES
ORDER BY type;

SELECT DEREF(address)
FROM customer_addresses;

SELECT DEREF(e.manager)
FROM emp_person_obj_table e;

SELECT *
FROM contacts_ref
WHERE DEREF(contact_ref) IS OF (student_typ);
SELECT DEREF(e.COLUMN_VALUE)
FROM TABLE ( SELECT e.empreflist FROM dept_view e WHERE e.dno = 100) e;

SELECT e.deptref.dno, DEREF(f.COLUMN_VALUE)


FROM emp_view e, TABLE(e.deptref.empreflist) f
WHERE e.deptref.dno = 100 AND f.COLUMN_VALUE.ename like 'John%';

CREATE TYPE emp_person_typ AS OBJECT (


name VARCHAR2(30),
manager REF emp_person_typ );
/
CREATE TABLE emp_person_obj_table OF emp_person_typ;

INSERT INTO emp_person_obj_table VALUES (emp_person_typ ('John Smith',


NULL));

INSERT INTO emp_person_obj_table SELECT emp_person_typ ('Bob Jones', REF(e))


FROM emp_person_obj_table e
WHERE e.name = 'John Smith';

CREATE TABLE contacts_ref (


contact_ref REF person_typ SCOPE IS person_obj_table,
contact_date DATE );

INSERT INTO contacts_ref


SELECT REF(p), '26 Jun 2003'
FROM person_obj_table p
WHERE p.idno = 101;

DECLARE
person_ref REF person_typ;
person person_typ;
BEGIN
SELECT REF(p) INTO person_ref
FROM person_obj_table p
WHERE p.idno = 101;
select deref(person_ref) into person from dual;
person.display_details();
END;
/
DECLARE
emp employee_typ;
emp_ref REF employee_typ;
BEGIN
SELECT REF(e) INTO emp_ref FROM employee_tab e WHERE e.employee_id = 370;
UPDATE employee_tab e
SET e.address = address_typ('8701 College', 'Oakland', 'CA', '94321')
WHERE REF(e) = emp_ref;
END;
/

CREATE TABLE contacts (


contact person_typ,
contact_date DATE );

INSERT INTO contacts VALUES (


person_typ (65, 'Verna', 'Mills', 'vmills@example.com', '1-650-555-0125'), '24 Jun
2003');

You might also like