7

我正在使用 VS2008 SSRS 来查询和报告 Oracle 数据库。每当我查询设计器添加外连接时,它都会添加 {oj} 例如

已添加 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},而不必“编辑为文本”

4

3 回答 3

2

我假设您还没有找到解决方案。我很确定 SSRS 的 Oracle 驱动程序完全是错误的 - SQL Server 数据源没有问题。我不敢相信没有更多的人抱怨它。

它曾经可以工作,但直到大约一年前,它才使用旧式 (+) 语法进行外连接。我猜当时有一些更新试图将其更改为较新的语法,但通过包含大括号 oj 将其搞砸了,这似乎是其他一些来源的正常语法,但它肯定不适用于 Oracle .

是的,当然你可以在文本查询设计器中编辑它,但是如果你切换到图形设计器,它会立即重新插入大括号等。我喜欢图形选项,它真的应该工作!

这个问题从一开始就一直存在于我们的供应商身上,但他们似乎无法理解这个问题。他们偶尔会发邮件问我问题是否仍然存在!我猜他们希望奇迹发生。

于 2012-11-22T09:24:16.003 回答
1

MSDN 说{oj}语法应该在 Visual Studio 中工作。但是,它也表示该(+)语法也有效。所以你可以试试——

SELECT A.*,B.*
  FROM A , B 
 WHERE A.id = B.id(+);

虽然下面的查询可以在 Visual Studio 中使用,但它不仅仅适用于任何 Oracle DB 客户端工具(Toad、SQL Developer、SQL 提示符等)。

SELECT A.*,B.*
FROM {oj A LEFT OUTER JOIN B On A.id = B.id};
于 2012-07-20T05:02:17.233 回答
1

我们的一个人终于发现,如果你进入编辑文本模式,你可以去掉 {oj 然后保存查询。(在我们的例子中是命名查询)只要您不在报表设计器中返回可视模式,它就会保留已编辑的查询并正常工作。但是,如果您切换到可视模式,{oj 会再次出现。

于 2012-10-25T20:24:08.427 回答