在oracle中键入同义词

时间:2011-09-08 17:21:33

标签: database oracle plsql

是否可以在oracle中创建“类型同义词”?类似的东西:

CREATE PUBLIC SYNONYM EmailType FOR VARCHAR2(120);

3 个答案:

答案 0 :(得分:3)

您不能这样做,但您可能想要使用SUBTYPE。 将SUBTYPE声明放在包内并使用它。

CREATE OR REPLACE PACKAGE SUBTYPES_PKG IS
  SUBTYPE EMAIL IS VARCHAR2(120);
END;

答案 1 :(得分:2)

您正在寻找的内容在其他数据库中称为“域” - 并且Oracle中没有域。关于这些坏消息我很遗憾。要在Oracle中使用TYPE,您需要类似

的内容
CREATE OR REPLACE TYPE EMAILTYPE AS OBJECT
  (
  strEmail  VARCHAR2(120)
  )

然后你可能需要定义构造函数和方法来操作你的类型。

分享并享受。

答案 2 :(得分:0)

我目前无法访问数据库,所以我会在早上办理登机手续,但我相当确定你能做到这一点。虽然您无法将对象创建为公共同义词,但您可以在几乎任何对象上创建同义词。

CREATE OR REPLACE TYPE EmailType AS OBJECT( EMail VARCHAR2(120));
create or replace public synonym emailtype  for emailtype;