ORA-00942:使用iBatis不存在表或视图

时间:2013-07-02 16:00:43

标签: oracle mybatis synonym

我正在使用MyBatis 3创建请求(如下所示)但是,我得到了: ORA-00942:表或视图不存在 其中SYNONYM_A是另一个数据库中表的公共同义词......

我知道这个例子并没有真正帮助,但真正的问题是,“Batis中的同义词是否有特殊的语法?”有没有人这样做过,或者失败了,可以告诉我,所以如果在Batis无效,我不会花很多精力?

@Select(“select * from SYNONYM_A where some_det_key in(SELECT DATA_KEY FROM SOME_PARENT_TABLE WHERE PARENT_KEY = 1234 AND(ATTACH_PARENT_FLG = 1或ATTACH_PARENT_FLG为空)AND DATA_SRC ='LV_SOME_DET')ORDER BY对

3 个答案:

答案 0 :(得分:0)

对于SYNONYM_A是其同义词的表,再次将PARENT模式的选择授权提供给当前模式。

SYNONYM_A是一个表的同义词还是PARENT模式中另一个SYNONYM的同义词? 万一它是,你需要提供最终基础架构的授权,其中实际的表再次位于'WITH GRANT OPTION'

答案 1 :(得分:0)

公共同义词并不意味着父表所在的模式不需要授权(如果同义词和表位于两个不同的模式中,即)。你需要澄清你的公共同义词的概念:)。

但这不是重点。 只是做:

SELECT * SOME_TABLE"@"CONNECTION_TO_ANOTHER_DATABASE;

如果这给你ORA-XXXX:表或视图不存在,那么这就是原因。

有两种可能性:

1.CONNECTION_TO_ANOTHER_DATABASE已损坏/不存在。   您可以通过执行以下查询来检查:

Select sysdate from duals@CONNECTION_TO_ANOTHER_DATABASE;
Select * from user_objects@CONNECTION_TO_ANOTHER_DATABASE;

如果这也给你带来同样的错误,你的CONNECTION_TO_ANOTHER_DATABASE就不见了。

如果这没有给出任何错误并给出一些有效的o / p,那么:

2.可能远程数据库中的“SOME_TABLE”不存在!

答案 2 :(得分:0)

答案是......

我连接到错误的数据库实例!!我构建了扩展的AbstractRoutingDataSource,并从主数据库中提取数据源的服务器名称。我发现另一个人错误地填充了这个表,并指向了一个同义词不存在的数据库。

感谢您的回复和时间。