Oracle关联数组,如何定义?

时间:2020-08-04 20:57:54

标签: oracle oracle-sqldeveloper associative-array

我试图在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;
  • 错误:PL / SQL:编译单元分析已终止
  • 错误(2,4):PLS-00355:在此情况下不允许使用pl / sql表

我怎么了?

1 个答案:

答案 0 :(得分:3)

您正在创建模式类型;这些可以是嵌套表或可变数组(变量数组),但不能是关联数组。

摘自the create type statement的文档:

使用CREATE TYPE语句创建的独立集合类型与使用PL / SQL块或包中的关键字TYPE定义的集合类型不同。有关后者的信息,请参见"Collection Variable Declaration"

使用CREATE TYPE语句,您可以创建嵌套表和VARRAY类型,但不能创建关联数组。在PL / SQL块或包中,可以定义所有三种集合类型。

相关问题