0

伙计们!

我们的 ORM(实体框架)与我们的 Oracle 提供者(Devart)正在生成一些 Oracle 无法执行的 SQL。我不确定是谁导致了这个问题,也许 Devart 会生成一个可以运行的 SQL,因为我们已经设置了环境。

我能想到的有两种可能:

  • 德瓦特产生垃圾;
  • Oracle 设置不正确。

我认为向 Devart 提供样本是相当困难的,这样他们就可以遇到同样的情况(我在这里问过他们)所以让我们看看第二个。

不起作用的代码:

SELECT        TO_CHAR(NULL) AS EXPR2
FROM            SYS.DUAL
UNION ALL
SELECT        TO_NUMBER(NULL) AS EXPR2
FROM            SYS.DUAL DUAL_1

有效的代码:

SELECT        TO_NUMBER(NULL) AS EXPR2
FROM            SYS.DUAL
UNION ALL
SELECT        TO_CHAR(NULL) AS EXPR2
FROM            SYS.DUAL DUAL_1

可以看出,如果第一个选择带有数字列,Oracle 确实接受不同的类型。但是我们的提供者会产生相反的情况(第一个字符然后是数字)。

还有一个问题:我们需要在 Oracle 中做任何设置来接受第一个 sql 样本吗?

不幸的是,我们不知道是什么产生了这种模式,但如果您想尝试,我们的 linq 就在这里

谢谢你。

4

1 回答 1

0

无需更改设置即可使其正常工作。请在此处阅读答案输入链接描述,Ben 完美地回答了它是如何工作的。

于 2013-06-22T12:19:23.503 回答