ORA-02019在字符串串联sql上,来自C#,使用oracle.dataaccess.client



我有一些代码,该代码基于几个值生成SQL查询。最终结果需要调用两个数据库来创建一个DataTable。第二个数据库由我们一直使用的数据库链接连接。C#本身是固体的,最终结果查询字符串是:

SELECT distinct HOME.MISC.PROCEDURE(H.WIDGET, H.FIDGET),
  H.WIDGET ,
  (SELECT WIDGETYPE
  FROM VISITOR.SOMETABLE@DEVSERV   --here is where it all goes bad, bad bad. 
  WHERE UPPER(WIDGET_SN) = UPPER(H.WIDGET)
  ) ,                                     
  H.FIDGET,                           
  HOME.STUFF.ANOTHERPROCEDURE(H.WIDGET)
FROM HOME.WIDGET_HEAP H
INNER JOIN HOME.WIDGET_LIST L
ON H.WIDGET         = L.WIDGET_ID
WHERE UPPER(L.WIDGET_ID ) = UPPER('1337-H4X')

显然,这些不是真实的字段名称或值,但是您明白了。当我在断点中从变量本身中提起查询时,我可以将SQL粘贴到SQL开发人员中,并且效果很好。当我运行查询并尝试在程序中填充我的DataTable时,我会得到:

ORA-02019:找不到远程数据库的连接说明;

用户名/tns/etc等都正确设置了,因为我们有许多程序使用相同的信息来建立其连接。我在这里使用链接时做错了吗?我已经搜索了Google,并在这里搜索了许多关于错误的引用,但是没有什么样的情况。

,因为您可以在sqldevelpinger中运行它,因此听起来像是DB_LINK的可见性的问题。这是链接公共数据库链接吗?如果是这样,所有用户都可以访问。如果没有,则只有您登录到SQLDEVEVELER的用户才能访问它。如果是这种情况,应用程序用户是同一用户吗?如果不是,那么它就无法访问它。关键在于错误描述,连接描述找不到。确保您的应用程序可以看到此链接。

相关内容

  • 没有找到相关文章

最新更新