[Oracle] 第17章 集合-记录类型
2016-09-24 14:01
369 查看
虽然PL/SQL提供了 ROWTYPE 的记录类型,但是 ROWTYPE 只能根据已有的表来决定复合类型,而记录类型可以由用户定义组成。
直接声明的类型
嵌套使用
DECLARE V_EMP_EMPNO EMP.EMPNO%TYPE; TYPE EMP_TYPE IS RECORD( ENAME EMP.ENAME%TYPE, JOB EMP.JOB%TYPE, HIREDATE EMP.HIREDATE%TYPE, SAL EMP.SAL%TYPE, COMM EMP.COMM%TYPE ); V_EMP EMP_TYPE; BEGIN V_EMP_EMPNO := &inputEmpno; SELECT ENAME, JOB, HIREDATE, SAL, COMM INTO V_EMP FROM EMP WHERE EMPNO = V_EMP_EMPNO; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('WRONG:' || SQLCODE || SQLERROR); END;
直接声明的类型
DECLARE TYPE DEPT_TYPE IS RECORD( DEPTNO DEPT.DEPTNO%TYPE := 80, DNAME DEPT.DNAME%TYPE, LOC DEPT.LOC%TYPE ); V_DEPT DEPT_TYPE; BEGIN V_DEPT.DNAME := 'MLDN'; V_DEPT.LOC := 'peking'; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT('WRONG:'|| SQLCODE || SQLERM); END;
嵌套使用
DECLARE TYPE DEPT_TYPE IS RECORD( DEPTNO DEPT.DEPTNO%TYPE, DNAME DEPT.DNAME%TYPE, LOC DEPT.LOC%TYPE ); TYPE EMP_TYPE IS RECORD( ENAME EMP.ENAME%TYPE, JOB EMP.JOB%TYPE, HIREDATE EMP.HIREDATE%TYPE, SAL EMP.SAL%TYPE, COMM EMP.COMM%TYPE, DEPT DEPT_TYPE ); V_EMP EMP_TYPE; BEGIN V_EMP_EMPNO := &inputEmpno; SELECT E.ENAME, E.JOB, E.HIREDATE, E.SAL, E.COMM, D.DEPTNO, D.DNAME, D.LOC INTO V_EMP.ENAME, V_EMP.JOB, V_EMP.HIREDATE, V_EMP.SAL, V_EMP.COMM, V_EMP.DEPTNO, V_EMP.DEPT.DEPTNO, V_EMP.DEPT.DNAME, V_EMP.DEPT.LOC FROM EMP E, LEFT JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE E.EMPNO = V_EMP_EMPNO; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT('WRONG:'|| SQLCODE || SQLERM); END;
相关文章推荐
- oracle集合类型,标量类型,记录类型辨析
- 源码-Oracle数据库管理-第十四章-记录与集合-Part 4(使用集合类型)
- 【Oracle】集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- 源码-Oracle数据库管理-第十四章-记录与集合-Part 3(使用集合类型)
- Oracle集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- ORACLE HANDBOOK系列之五:PL/SQL中的集合类型(Collections in PL/SQL)
- oracle常用的复合数据类型 : BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer
- Oracle三种集合数据类型的比较
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合数据类型的比较
- oracle集合类型table
- Oracle三种集合数据类型的比较
- Oracle 三种集合数据类型的比较
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle集合类型输出参数的PL/SQL存储过程及其Java调用
- Oracle三种集合数据类型的比较
- oracle集合类型
- c++ Primer 的一点基础记录(4)--集合类型
- 数据库-Oracle【Oracle 三种集合数据类型的比较 】
- Oracle三种集合数据类型的比较