简单类型别名 - Oracle的最佳实践

Hos*_*osm 7 oracle user-defined-types

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

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

2 - 根据最佳实践在何处定义它(Schema,package,DB,..)?

非常感谢

Kom*_*owy 5

我担心没有简单的方法来实现这一目标.你可以在包里面定义一个子类型,如下所示:

SUBTYPE myclient is VARCHAR2(50);
Run Code Online (Sandbox Code Playgroud)

但您无法将其用作数据库列的类型.为此,您必须使用以下内容定义SQL类型:

CREATE TYPE myclient ...
Run Code Online (Sandbox Code Playgroud)

但是你只能用这种方式定义记录类型,对象类型或集合类型.这很奇怪,但好吧,就像甲骨文中的一些东西...... :)