我正在使用IBM DB2 v8(新功能模式),我使用的是Entity Framework 5.0.0
我有一个LINQ查询,它在我的环境中完美执行,但它不能在其他环境中工作。我尝试通过调试代码来提取为该LINQ查询生成的SQL查询。我尝试在我的环境中执行该SQL(DB2 DB v9.1和DB2驱动程序10.5),它运行良好。对于相同的查询,它在我的另一个环境中不起作用:DB2 DB v8(新功能模式)和DB2驱动程序9.7。它给"CROSS" JOIN
一个错误。当我使用LINQ时,查询是一个自动生成的查询,我无法更改。我想在我的第二个环境中运行。下面我给出了我的示例查询。如果有办法解决这个问题,请告诉我?
SELECT t1.MyName, t2.MySalary
FROM Employee t1 CROSS JOIN Salary t2
我收到以下错误:
ILLEGAL SYMBOL“CROSS”。一些可能是法律的符号是: SQLCODE = -104,SQLSTATE = 42601
答案 0 :(得分:0)
V8不支持CROSS JOIN
子句。从手册:
V8:http://www-01.ibm.com/support/knowledgecenter/SSEPGG_8.2.0/com.ibm.db2.udb.doc/admin/r0000875.htm
<强>加入表强>
>>-+-table-reference--+-----------+--JOIN--table-reference--ON--join-condition-+-><
| '-| outer |-' |
'-(--joined-table--)--------------------------------------------------------'
<强>加入表强>
>>-+-table-reference--+-----------+--JOIN--table-reference--ON--join-condition-+-><
| '-| outer |-' |
+-table-reference--CROSS JOIN--table-reference------------------------------+
'-(--joined-table--)--------------------------------------------------------'
请注意较新版本中的新CROSS JOIN
子句。另外,不再支持V8,您应该切换到更新的版本; - )
HTH。