每个常量、变量、子程序参数、函数返回值都有个数据类型来决定其存储格式、限制、有效值范围以及合法操作等。

    PL 数据类型可以是一个 SQL 数据类型(如VARCHAR2,NUMBER或DATE),或是一个 PL 专用数据类型(包括BOOLEAN,RECORD,REF CURSOR,以及一些预定义的子类型)。PL 也允许自定义子类型。

    子类型是基础类型的子类。子类型继承基础类型的合法操作,但是值域可能是基础类型的子集。子类型可以增加可靠性,提供 ANSI/ISO 类型的兼容性,以及通过指示常量和变量的用途来提高可读性。

    您不能在 SCHEMA 级别的独立子程序中使用 PL 专用数据类型,如果要使用这些类型,需要把子程序放到包里面。

    此外,PL 还支持集合类型,具体请参考“使用关联数组”和“使用可变数组”章节。