Основы языка PL/SQL. Гаршина В.В - 44 стр.

UptoLike

Составители: 

44
-- создание тестовых таблиц
CREATE TABLE Project_tab (
Prj_level NUMBER,
Projno NUMBER,
Resp_dept NUMBER);
CREATE TABLE Emp_tab (
Empno NUMBER NOT NULL,
Ename VARCHAR2(10),
Job VARCHAR2(9),
Mgr NUMBER(4),
Hiredate DATE,
Sal NUMBER(7,2),
Comm NUMBER(7,2),
Deptno NUMBER(2) NOT NULL);
CREATE TABLE Dept_tab (
Deptno NUMBER(2) NOT NULL,
Dname VARCHAR2(14),
Loc VARCHAR2(13),
Mgr_no NUMBER,
Dept_type NUMBER);
-- cоздание view на нескольких таблицах
CREATE OR REPLACE VIEW manager_info AS
SELECT e.ename, e.empno, d.dept_type,
d.deptno, p.prj_level, p.projno
FROM Emp_tab e, Dept_tab d, Project_tab p
WHERE e.empno = d.mgr_no
AND d.deptno = p.resp_dept;
-- пример триггера
CREATE OR REPLACE TRIGGER m_info_insert
INSTEAD OF INSERT
ON manager_info
REFERENCING NEW AS n
-- создание тестовых таблиц
CREATE TABLE Project_tab (
  Prj_level NUMBER,
  Projno NUMBER,
  Resp_dept NUMBER);

CREATE TABLE Emp_tab (
  Empno NUMBER NOT NULL,
  Ename VARCHAR2(10),
  Job VARCHAR2(9),
  Mgr NUMBER(4),
  Hiredate DATE,
  Sal NUMBER(7,2),
  Comm NUMBER(7,2),
  Deptno NUMBER(2) NOT NULL);

CREATE TABLE Dept_tab (
  Deptno NUMBER(2) NOT NULL,
  Dname VARCHAR2(14),
  Loc VARCHAR2(13),
  Mgr_no NUMBER,
  Dept_type NUMBER);

-- cоздание view на нескольких таблицах
CREATE OR REPLACE VIEW manager_info AS
SELECT e.ename, e.empno, d.dept_type,
       d.deptno, p.prj_level, p.projno
FROM Emp_tab e, Dept_tab d, Project_tab p
WHERE e.empno = d.mgr_no
AND d.deptno = p.resp_dept;


-- пример триггера
CREATE OR REPLACE TRIGGER m_info_insert
INSTEAD OF INSERT
ON manager_info
REFERENCING NEW AS n
                       44