我有一个多模式Oracle数据库,其中客户端帐户在所有模式中应该是varchar(50)。 因此,我想为varchar(50)分配一个新名称,例如MYCLIENT,以便在所有表格,存储过程和函数中,我只需使用MYCLIENT来定义字段,参数等,以避免误操作。
1 - 如何在Oracle中定义新类型(最简单的方法)
2 - 在符合最佳实践的情况下,在哪里定义它(模式、包、数据库等)?
非常感谢
我有一个多模式Oracle数据库,其中客户端帐户在所有模式中应该是varchar(50)。 因此,我想为varchar(50)分配一个新名称,例如MYCLIENT,以便在所有表格,存储过程和函数中,我只需使用MYCLIENT来定义字段,参数等,以避免误操作。
1 - 如何在Oracle中定义新类型(最简单的方法)
2 - 在符合最佳实践的情况下,在哪里定义它(模式、包、数据库等)?
非常感谢
我很抱歉,没有简单的方法可以实现这一点。您可以像这样在包内定义一个子类型:
SUBTYPE myclient is VARCHAR2(50);
但您无法将此作为数据库列的类型使用。为了这样做,您必须使用以下方式定义SQL类型:
CREATE TYPE myclient ...
但是你只能用这种方式定义记录类型、对象类型或集合类型。这很奇怪,但好吧,就像 Oracle 中的许多事情一样... :)