2017-08-07 65 views
0

我有一个简单的查询,我在sqldeveloper上运行put数据库,但它从不同的供应商数据库中选择数据。我们创建了db_link。但我跑得一样,在我临C程序:运行查询无法连接到vendort的数据库,甚至dblink存在

select some_files from mytable trd, vendordbname.vendortable  
where(condition)  

,我得到一个错误:

ORA-00942: table or view does not exist  
00942. 00000 - "table or view does not exist"  
*Cause:   
*Action:  
Error at Line: 25 Column:  

什么样的解决方案,我必须找到,使其运行?使用dblink名字?或者是其他东西?我会感谢任何可能的帮助

感谢

+0

的DB_LINK运行作为一个特定的用户运行它。在我看来,用户没有对vendordbname.vendortable的权限。 '从all_DB_LINKS中选择*;'显示所有链接和用户,只要您有权从系统视图中进行选择。这会给你链接正在运行的用户,然后可以检查适当的权限。 – xQbert

+0

但是程序在QA和生产服务器上运行良好,即使我手动运行它,唯一的我无法从sqldeveloper运行它。我检查了all_db_link,一切都存在 – SamOl

+0

我不确定我是否按照这个问题。你是否说过,在SQL开发者身份登录时,你可以在dev/test/prod环境中运行查询,并且它可以工作;但是当你通过应用程序运行它失败时(只是在prod中?)有没有一个同义词被用于指向Pro C应用程序用户没有权限的链接? – xQbert

回答

1

OK,当它与Pro C同时运行,一切都在UNIX和sqlplus的设置。
当我的SQLDeveloper我要补充供应商的主机名

select some_files from mytable trd, [email protected]   
where(condition)  
+0

那么你是说你的访问问题是通过从不同的操作系统连接来解决的?对我而言,您更可能以不同的Oracle用户或不同的实例进行连接。 –