9

我有一个多模式 oracle 数据库,其中客户帐户在所有模式中都应该是 varchar(50)。因此,我想像 MYCLIENT 一样为 varchar(50) 分配一个新名称,这样在所有表、sp 和函数中,我只需使用 MYCLIENT 来定义字段、参数等,以避免完整性错误。

1 - 我应该如何在Oracle中定义新类型(最简单的方法)

2 - 根据最佳实践在哪里定义它(架构、包、数据库、..)?

非常感谢

4

1 回答 1

6

恐怕没有简单的方法可以实现这一目标。您可以像这样在包中定义子类型:

SUBTYPE myclient is VARCHAR2(50);

但是您将无法将其用作数据库列的类型。为此,您必须定义一个 SQL 类型:

CREATE TYPE myclient ...

但是您只能通过这种方式定义记录类型、对象类型或集合类型。这很奇怪,但是,就像 Oracle 中的很多东西一样...... :)

于 2013-11-02T14:23:41.777 回答