ORA-00972 Oracle EF Provider

时间:2016-02-29 09:53:42

标签: oracle entity-framework

我在Oracle.ManagedDataAccess.Client提供程序中使用EF,并在查询数据库时遇到以下错误。

  

" ORA-00972:标识符太长"

经过网上的一些研究后,我发现这个错误是由于我超过了Oracle的30个字符别名限制。两年前报告了此错误,似乎错误在最新版本的提供程序中未得到修复。

不幸的是,数据库是第三方解决方案,无论如何我都无法修改数据库。

是否可以强制EF生成少于30个字符的别名?

在应用条件的情况下连接多个表时,似乎出现了我的问题。我也只选择/投射我需要的列,但EF会在连接中投射所有列,产生不必要的别名。

我希望这个......

SELECT 
  tbl1.key
FROM Table1 tbl1
INNER JOIN Table2 tbl2 on tbl1.key = tbl2.key
WHERE blah blah blah

但我得到了这个......

SELECT 
  tbl1.col1
FROM (SELECT tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5 from Table1 tbl1
  INNER JOIN Table2 tbl2 on tbl1.key = tbl2.key WHERE blah blah blah)

0 个答案:

没有答案