Sql 新添加的列未出现在同义词中
我在XX模式下有一个名为YY_ZZ_VAT_TRX_DETAILS的表。 它具有AA模式的现有同义词 我目前以AA的身份登录,我想在YY_ZZ_VAT_TRX_详细信息中添加一列,并很好地执行了下面的命令Sql 新添加的列未出现在同义词中,sql,oracle,Sql,Oracle,我在XX模式下有一个名为YY_ZZ_VAT_TRX_DETAILS的表。 它具有AA模式的现有同义词 我目前以AA的身份登录,我想在YY_ZZ_VAT_TRX_详细信息中添加一列,并很好地执行了下面的命令 alter table XX.YY_ZZ_VAT_TRX_DETAILS add (USER_DEFINED_FISC_CLASS VARCHAR2(30)); 表XX.YY_ZZ_VAT_TRX_详细信息已更改 我尝试使用下面的简单查询从表中选择列 select USER_DEFINED
alter table XX.YY_ZZ_VAT_TRX_DETAILS
add (USER_DEFINED_FISC_CLASS VARCHAR2(30));
表XX.YY_ZZ_VAT_TRX_详细信息已更改
我尝试使用下面的简单查询从表中选择列
select USER_DEFINED_FISC_CLASS
from YY_ZZ_VAT_TRX_DETAILS;
但我意外地发现了这个错误:
ORA-00904:用户定义的FISC类:无效标识符
90400000-%s:无效标识符
*原因:
*操作:第1行第9列出错
我想我只是错过了更改表,所以我再次运行ALTER脚本,但却出现了以下错误:
从命令-alter table中的第4行开始出错
二十、 YY_ZZ_VAT_TRX_详细信息添加用户定义的_FISC_类VARCHAR230
错误报告-ORA-01430:表中已存在正在添加的列
143000000-表中已存在正在添加的列
*原因:
*行动:
我检查了对象定义,果然在那里找到了新列:
但是当我查询表中的所有列时,我仍然看不到它:
select *
from YY_ZZ_VAT_TRX_DETAILS;
但是,当我使用XX模式前缀进行查询时,我能够看到以下列:
select *
from XX.YY_ZZ_VAT_TRX_DETAILS;
为什么同义词没有拾取新添加的列?我相信您可能有一个名为YY_ZZ_VAT_TRX_DETAILS的表或视图,或者一个指向另一个表的私有同义词 在oracle中,查询时的首选项是 1同一架构中的对象\u 私人同义词
3公共同义词这似乎是由甲骨文最近为12c引入的东西造成的 经进一步调查,发生的情况是: 表XX.XX_ZZ_VAT_TRX_DETAILS有一个名为XX_ZZ_VAT_TRX_DETAILS的可编辑视图,该视图仅选择一定数量的列 现在,视图XX_ZZ_VAT_TRX_DETAILS在模式AA下有一个名为XX_ZZ_VAT_TRX_DETAILS的同义词,因此表中有一个同名同义词会引起混淆 为了解决这个问题,我修改了视图XX_ZZ_VAT_TRX_DETAILS并添加了新列并成功地重新编译了它
完成后,同义词现在显示新添加的列,并且我能够成功编译存储过程。您是否仔细检查了您在同一数据库中执行alter和select?是的,实际上是同一个会话@HoneyBadger@HoneyBadger,我添加了更多信息。当我使用模式进行查询时,似乎会出现列。您在查询的位置是否碰巧有一个名为YY_ZZ_VAT_TRX_DETAILS的表或视图?感谢您的输入,我能够解决此问题。请看下面我的答案。