您的位置:首页 > 数据库 > Oracle

oracle自定义类型使用方法

2012-02-18 12:39 369 查看
<1>CREATE TYPE T_DEPT AS OBJECT(DEPTNO NUMBER,DNAME VARCHAR2(20),LOC VARCHAR2(20));

<2>

-- Create table

create table EMP

(

empno NUMBER(4) not null,

ename VARCHAR2(10),

job VARCHAR2(9),

mgr NUMBER(4),

hiredate DATE,

sal NUMBER(7,2),

comm NUMBER(7,2),

deptno NUMBER(2),

dept T_DEPT

)

tablespace USERS

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64K

next 1M

minextents 1

maxextents unlimited

);

-- Create/Recreate primary, unique and foreign key constraints

alter table EMP

add constraint PK_EMP primary key (EMPNO)

using index

tablespace USERS

pctfree 10

initrans 2

maxtrans 255

storage

(

initial 64K

next 1M

minextents 1

maxextents unlimited

);

<3>

DECLARE

T SCOTT.DEPT%ROWTYPE;

BEGIN

FOR REC IN (SELECT EMPNO, DEPTNO FROM EMP) LOOP

SELECT * INTO T FROM SCOTT.DEPT WHERE DEPTNO = REC.DEPTNO;

UPDATE EMP A SET A.DEPT = T_DEPT(T.DEPTNO, T.DNAME, T.LOC);

END LOOP;

END;

SELECT * FROM EMP;

<4>

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPT.DEPTNO DEPT.DNAME DEPT.LOC

1 7369 SMITH CLERK 7902 12/17/1980 800.00 20 10 ACCOUNTING NEW YORK

2 7499 ALLEN SALESMAN 7698 2/20/1981 1600.00 300.00 30 10 ACCOUNTING NEW YORK

3 7521 WARD SALESMAN 7698 2/22/1981 1250.00 500.00 30 10 ACCOUNTING NEW YORK

4 7566 JONES MANAGER 7839 4/2/1981 2975.00 20 10 ACCOUNTING NEW YORK

5 7654 MARTIN SALESMAN 7698 9/28/1981 1250.00 1400.00 30 10 ACCOUNTING NEW YORK

6 7698 BLAKE MANAGER 7839 5/1/1981 2850.00 30 10 ACCOUNTING NEW YORK

7 7782 CLARK MANAGER 7839 6/9/1981 2450.00 10 10 ACCOUNTING NEW YORK

8 7788 SCOTT ANALYST 7566 4/19/1987 3000.00 20 10 ACCOUNTING NEW YORK

9 7839 KING PRESIDENT 11/17/1981 5000.00 10 10 ACCOUNTING NEW YORK

10 7844 TURNER SALESMAN 7698 9/8/1981 1500.00 1.00 30 10 ACCOUNTING NEW YORK

11 7876 ADAMS CLERK 7788 5/23/1987 1100.00 20 10 ACCOUNTING NEW YORK

12 7900 JAMES CLERK 7698 12/3/1981 950.00 30 10 ACCOUNTING NEW YORK

13 7902 FORD ANALYST 7566 12/3/1981 3000.00 20 10 ACCOUNTING NEW YORK

14 7934 MILLER CLERK 7782 1/23/1982 1300.00 10 10 ACCOUNTING NEW YORK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: