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

11

我有一个多模式Oracle数据库,其中客户端帐户在所有模式中应该是varchar(50)。 因此,我想为varchar(50)分配一个新名称,例如MYCLIENT,以便在所有表格,存储过程和函数中,我只需使用MYCLIENT来定义字段,参数等,以避免误操作。

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

2 - 在符合最佳实践的情况下,在哪里定义它(模式、包、数据库等)?

非常感谢

1个回答

7

我很抱歉,没有简单的方法可以实现这一点。您可以像这样在包内定义一个子类型:

SUBTYPE myclient is VARCHAR2(50);

但您无法将此作为数据库列的类型使用。为了这样做,您必须使用以下方式定义SQL类型:

CREATE TYPE myclient ...

但是你只能用这种方式定义记录类型、对象类型或集合类型。这很奇怪,但好吧,就像 Oracle 中的许多事情一样... :)


谢谢您的回答;您的意思是没有办法让Oracle简单地预处理SQL语句(例如创建表),只需将MYCLIENT替换为nvarchar(50)吗?! - Hosm
据我所知没有。 - Kombajn zbożowy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接