【发布时间】:2020-06-05 19:54:29
【问题描述】:
我想知道是否有人知道通过 OpenQuery 使用 NetSuite 的 ODBC SuiteAnalytics Connect 服务的限制列表?我遇到了很多问题,一些更复杂的查询无缘无故地失败了,我终于开始将其缩小到某种奇怪的限制,这是我对 Oracle ODBC 没有预料到的。以下是我目前发现的一些示例:
- 无法使用基本 CTE
基本的 Oracle 查询:
在 SQL Server 中作为 CTE 的基本查询:
通过 OpenQuery 在 Oracle NetSuite 中作为 CTE 的基本查询(请注意无用的响应,基本上是(“不工作”):
- 无法使用 TRUNC(date) 函数
选择 SYSDATE:
选择和截断 SYSDATE(注意错误,即使 according to Oracle, the format parameter is OPTIONAL:
使用两个明显必需的参数(使用 Oracle 页面中的有效“格式”掩码)选择和截断 SYSDATE。注意“TRUNC returned error”这个无用的错误:
- 无法使用 LISTAGG() 函数
项目全名的基本查询:
尝试使用 Oracle's correct format for LISTAGG 时的相同查询,再次注意无用的“SQL 语句中的语法错误”:
- 由于某种原因,当插入到更大的查询中时,可以自行正常工作的子查询似乎会失败(即将推出的示例™)
我试图了解这些限制并了解它们是什么,但这就像戳黑盒子!
【问题讨论】:
-
为什么?你得到什么错误?一个乏味的“不能使用”并没有给我们太多的继续。
-
@alexherm 这正是我的挫败感。 90% 的情况下,当我得到回复时,基本上就是我得到的,一个没有任何意义的通用无用错误。当我周一重新开始工作时,我会用一些例子来更新我的问题。
-
@alexherm 我已经用一些基本示例更新了这个问题,如果这有帮助的话。在我从一个可以直接访问 Oracle 数据库的环境中走出来后,我感到非常沮丧,发现我在尝试使用 OpenQuery 访问我们的 NetSuite 数据库时无法完成一些相同的基本操作,该数据库大概是基于 Oracle 的技术。
-
除非情况发生变化,否则在使用 Oracle 时需要提供 FROM。通常通过添加
FROM DUAL来完成。 -
@Brian 事情肯定发生了变化,因为成功的语句显然处理得没有错误。只是在添加了修饰符之后才失败。事实上,当我尝试使用 DUAL 时,它告诉我 DUAL 不是有效对象。
标签: sql oracle function odbc netsuite