Where/How 是否声明了 Oracle 列别名?

Where/How are Oracle Column Aliases Declared?

我正在尝试跟踪 table 中的一些 information/primary 键,我们用来执行此操作的正常机制是通过视图,这些视图只不过是 table 之上的语义层=]s 具有极其神秘的列名称。

例如,table 看起来像:

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。我强烈怀疑它不是罪魁祸首,但为了全面披露,我想提及它。

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

不过我不得不说,如果您可以看到底层视图查询,那么混淆就是浪费时间!

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

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

的 TEXT 字段中的查询