我试图在Oracle中创建一个关联数组,当我创建一个嵌套表时,它可以正常工作:
CREATE OR REPLACE TYPE TRNG_BOOK_AUTHORS_TAB
AS TABLE OF VARCHAR2(500);
但是当我添加索引时会出现错误:
CREATE OR REPLACE TYPE TRNG_BOOK_AUTHORS_TAB
AS TABLE OF VARCHAR2(500) INDEX BY PLS_INTEGER;
我怎么了?
答案 0 :(得分:3)
您正在创建模式类型;这些可以是嵌套表或可变数组(变量数组),但不能是关联数组。
摘自the create type
statement的文档:
使用
CREATE TYPE
语句创建的独立集合类型与使用PL / SQL块或包中的关键字TYPE
定义的集合类型不同。有关后者的信息,请参见"Collection Variable Declaration"。使用
CREATE TYPE
语句,您可以创建嵌套表和VARRAY
类型,但不能创建关联数组。在PL / SQL块或包中,可以定义所有三种集合类型。