Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 新添加的列未出现在同义词中_Sql_Oracle - Fatal编程技术网

Sql 新添加的列未出现在同义词中

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

我在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_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的表或视图?感谢您的输入,我能够解决此问题。请看下面我的答案。