gpt4 book ai didi

sql - 新添加的列没有出现在同义词中

转载 作者:行者123 更新时间:2023-12-04 13:38:18 25 4
gpt4 key购买 nike

我有一张名为 YY_ZZ_VAT_TRX_DETAILS 的表下XX架构。
它有一个现有的 SYNONYMAA架构。

我目前登录为 AA我想向 YY_ZZ_VAT_TRX_DETAILS 添加一列并执行以下命令就好了

alter table XX.YY_ZZ_VAT_TRX_DETAILS
add (USER_DEFINED_FISC_CLASS VARCHAR2(30));

Table XX.YY_ZZ_VAT_TRX_DETAILS altered.



我尝试使用下面的简单查询从表中选择列
select  USER_DEFINED_FISC_CLASS
from YY_ZZ_VAT_TRX_DETAILS;

但我出人意料地得到了这个错误:

ORA-00904: "USER_DEFINED_FISC_CLASS": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause:
*Action: Error at Line: 1 Column: 9



我以为我只是错过了改变表格,所以我重新运行了 ALTER再次编写脚本,但收到此错误:

Error starting at line : 4 in command - alter table XX.YY_ZZ_VAT_TRX_DETAILS add (USER_DEFINED_FISC_CLASS VARCHAR2(30)) Error report - ORA-01430: column being added already exists in table 01430. 00000 - "column being added already exists in table" *Cause:
*Action:



我检查了对象定义,果然,我在那里找到了新列:

enter image description here

但是当我从表中查询所有列时,我仍然看不到它:
select  *
from YY_ZZ_VAT_TRX_DETAILS;

enter image description here

但是,当我使用 XX 查询时模式前缀,我可以看到该列:
select  *
from XX.YY_ZZ_VAT_TRX_DETAILS;

enter image description here

为什么同义词没有拾取新添加的列?

最佳答案

这似乎是由 Oracle 最近为 12c 引入的“Edition-Based Redefinition”引起的。

经过进一步调查,事情的经过是:

XX.XX_ZZ_VAT_TRX_DETAILS有一个名为 XX_ZZ_VAT_TRX_DETAILS# 的可编辑 View 只选择一定数量的列。

现在,查看 XX_ZZ_VAT_TRX_DETAILS#有一个名为 XX_ZZ_VAT_TRX_DETAILS 的同义词在架构下 AA ,因此表上的混淆具有同名的同义词。

为了解决这个问题,我修改了 View XX_ZZ_VAT_TRX_DETAILS#并添加了新列并成功重新编译它。

完成此操作后,同义词现在显示新添加的列,并且我能够成功编译存储过程。

关于sql - 新添加的列没有出现在同义词中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60528131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com