我使用VS2008 SSRS查询和报告Oracle数据库。 每当我在查询Designer中添加外连接时,它都会添加{oj} e.g。
OJ已添加SELECT A.*,B.*
FROM {oj A LEFT OUTER JOIN B On A.id = B.id}
OJ没有添加(我多么想要)
SELECT A.*,B.*
FROM A LEFT OUTER JOIN B On A.id = B.id
我可以让查询运行的唯一方法是“编辑为文本...”并删除{oj ...}
当我需要外连接时,有没有办法阻止Visual Studio 2008添加{oj},而不必“编辑为文本”
答案 0 :(得分:2)
我假设你还没有找到解决方案。我很确定SSRS的Oracle驱动程序是完全错误的 - SQL Server数据源没有问题。我不敢相信没有人抱怨它。
它曾经工作过,但是使用旧式(+)语法进行外连接,直到大约一年前。我想在那一点上有一些更新试图将其更改为更新的语法,但通过包括大括号oj来破坏它,这似乎是其他一些来源的正常语法,但它肯定不适用于Oracle
是的,当然你可以在文本查询设计器中编辑它,但是如果切换到图形设计器,它会立即重新插入花括号等。我喜欢使用图形选项,它确实应该可以工作! / p>
自首次发生以来,我们的供应商一直存在这个问题,但他们似乎无法理解这个问题。他们偶尔会给我发电子邮件询问问题是否仍然存在!我猜他们希望有一个奇迹。
答案 1 :(得分:1)
MSDN说{oj}
语法应该在Visual Studio中有效。但是,它也说(+)
语法也有效。所以你可以试试 -
SELECT A.*,B.*
FROM A , B
WHERE A.id = B.id(+);
虽然下面的查询可以在Visual Studio中使用,但它不会只适用于任何Oracle DB Client工具(Toad,SQL Developer,SQL提示等)。
SELECT A.*,B.*
FROM {oj A LEFT OUTER JOIN B On A.id = B.id};
答案 2 :(得分:1)
我们的一个人终于发现,如果你进入编辑文本模式,你可以删除{oj然后保存查询。 (在我们的示例中是一个命名查询)只要您不在报表设计器中返回可视模式,它将保留已编辑的查询并正常工作。但是,如果你翻转到视觉模式,{oj会再次回来。