oracle声明一个用户定义的类型,可以跨多个函数和过程使用

时间:2016-10-07 11:23:38

标签: oracle function stored-procedures plsql oracle11g

我有一个SQL文件,可以创建其他存储过程/函数。我想使用可以在创建的存储过程/函数中访问的用户定义类型。实现这一目标的最佳方法是什么?我想到的最简单的方法是在每个过程/函数中创建用户定义的类型。

我的用户定义类型如下所示:

create  type array_t is varray(2) of number;

2 个答案:

答案 0 :(得分:2)

执行

create  type array_t is varray(2) of number;

全局。

答案 1 :(得分:1)

您可以使用create [or replace] type语句将类型创建为独立项,也可以将其包含在包标头中。独立类型的优点是您可以在SQL查询中使用它,并将其用作表和视图列的类型。 PL / SQL-only声明的优点在于它简化了部署,无论如何,没有人会想要varray列。

如果您的部署过程正在提供'名称已被现有对象' 错误使用,那么它已存在(可能来自之前的运行)。 create or replace是标准做法,也是一个好主意,尽管您的脚本应该只在一个地方定义每个项目。