Oracle列别名在何处/如何声明?

时间:2015-10-27 19:10:42

标签: oracle view alias

我正在尝试跟踪表中的一些信息/主键,我们用来执行此操作的常规机制是通过视图,这些视图只不过是具有极其神秘的列名的表上的语义层。

例如,表格如下:

create table F3002_WH
(
  ixtbm  CHAR(9) not null,
  ixkit  NUMBER not null,
  ixmmcu CHAR(36) not null,
  ixcpnt NUMBER not null,
  ixsbnt NUMBER not null,
  ixbqty NUMBER not null,
  ixcoby CHAR(3) not null
);

但是视图会将这些字段中的每一个都转换为可读的名称,例如" TYPE_BILL"而不是" ixtbm。"

但是,当我查看视图的DDL时:

CREATE OR REPLACE VIEW F3002_VIEW AS
SELECT
  ixtbm, ixkit, ixmmcu, ixcpnt, ixsbnt, ixbqty, ixcoby
from F3002_WH;

我没有看到别名。我希望看到ixtbm as type_bill

所以我的问题是这个别名来自何处,如何将其与原始字段名称联系起来而不将其转化为科学项目?我不明白在不查看视图代码的情况下查询视图时如何呈现它。

对于它的价值,我正在使用All Around Automation的PL / SQL Developer。我强烈怀疑这不是罪魁祸首,但为了充分披露,我想提一下。

1 个答案:

答案 0 :(得分:2)

CREATE VIEW myView (alias1, alias2) as select ixtbm, ixkit from f3002_wh;

我不得不说,如果你能看到基础视图查询,那么混淆是浪费时间!

我认为正在发生的事情是,您的工具生成的DDL默认情况下不会包含列列表,这就是您没有看到它的原因。如果您删除了视图并使用生成的DDL重建它,而不是使用最初创建它的脚本,那么您将丢失别名。

它们可能是DDL生成器上的选项,可以在视图中包含列名列表,但由于我没有这个工具,我无法验证。为此,他们需要查询ALL_TAB_COLUMNS,而不是仅在ALL_VIEWS的TEXT字段中显示查询。

相关问题