CREATE TYPE(嵌套表)语句 (PL/SQL)

CREATE TYPE(嵌套表)语句用于定义按 INTEGER 数据类型建立下标的关联数组。

调用

可以从 命令行处理器 (CLP)、任何受支持的交互式 SQL 界面、应用程序或例程中执行此语句。

权限

此语句的授权标识所拥有的特权必须至少包括下列其中一项:
  • 如果嵌套表类型的模式名不存在:对数据库的 IMPLICIT_SCHEMA 权限
  • 如果嵌套表类型的模式名引用现有模式:对该模式的 CREATEIN 特权
  • DBADM 权限

语法

阅读语法图跳过直观语法图CREATEOR REPLACE TYPEassocarrayISASTABLE OFdatatype

描述

OR REPLACE
指示当模式中已存在同名的用户定义数据类型时,新数据类型将替换现有数据类型。如果未指定此选项,那么新数据类型无法替换同一模式中现有的同名数据类型。
assocarray
指定关联数组类型的标识。
datatype
指定受支持的数据类型,例如 NUMBER、VARCHAR2、RECORD、VARRAY 或关联数组类型。

示例

以下示例从 EMP 表中读取前 10 个职员姓名,将它们存储在嵌套表中,然后显示其内容。
SET SERVEROUTPUT ON
/

CREATE OR REPLACE TYPE emp_arr_typ IS TABLE OF VARCHAR2(10)
/

DECLARE
   emp_arr         emp_arr_typ;
   CURSOR emp_cur IS SELECT ename FROM emp WHERE ROWNUM <= 10;
   i               INTEGER := 0;
BEGIN      
   FOR r_emp IN emp_cur LOOP
      i := i + 1;
      emp_arr(i) := r_emp.ename;
   END LOOP;
   FOR j IN 1..10 LOOP
      DBMS_OUTPUT.PUT_LINE(emp_arr(j));
   END LOOP;
END   /