我有一个SQL文件,可以创建其他存储过程/函数。我想使用可以在创建的存储过程/函数中访问的用户定义类型。实现这一目标的最佳方法是什么?我想到的最简单的方法是在每个过程/函数中创建用户定义的类型。
我的用户定义类型如下所示:
create type array_t is varray(2) of number;
答案 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
是标准做法,也是一个好主意,尽管您的脚本应该只在一个地方定义每个项目。