首页 > 解决方案 > NetSuite ODBC 限制

问题描述

我试图找出是否有人知道通过 OpenQuery 使用 NetSuite 的 ODBC SuiteAnalytics Connect 服务的任何限制列表?我遇到了很多问题,一些更复杂的查询无缘无故地失败了,我终于开始将其缩小到某种奇怪的限制,这是我对 Oracle ODBC 没有预料到的。以下是我目前发现的几个例子:

基本的 Oracle 查询:

基本的 Oracle 查询

SQL Server 中作为 CTE 的基本查询:

SQL Server 中作为 CTE 的基本查询

通过 OpenQuery 在 Oracle NetSuite 中作为 CTE 的基本查询(注意无用的响应基本上是(“不工作”):

通过 OpenQuery 在 Oracle NetSuite 中作为 CTE 的基本查询

选择 SYSDATE:

选择 SYSDATE

选择和截断 SYSDATE(注意错误,即使根据 Oracle,格式参数是可选的:

选择和截断 SYSDATE

使用两个明显必需的参数(使用 Oracle 页面中的有效“格式”掩码)选择和截断 SYSDATE。请注意“TRUNC 返回错误”的无用错误:

使用两个明显必需的参数选择和截断 SYSDATE

项目全名的基本查询:

项目全名的基本查询

尝试对 LISTAGG 使用 Oracle 的正确格式时的相同查询,再次注意无用的“SQL 语句中的语法错误”:

尝试对 LISTAGG 使用 Oracle 的正确格式时的相同查询

我试图了解这些限制并了解它们是什么,但这就像戳黑匣子!

标签: sqloraclefunctionodbcnetsuite

解决方案


作为对任何追随我的人的后续行动......

我直接联系了 NetSuite,因为我在别处找不到答案,他们告诉我他们只支持 SQL-92 中存在的方法和对象。

这是他们的回应:

根据我们的项目经理的说法,用户没有直接连接到 Oracle 数据库。SuiteAnalytics Connect 使用其自己的(虚拟)架构,可以以符合 SQL-92 的方式查询该架构。

一些特定于 Oracle 的函数也可以工作,但不能保证正常工作。>不鼓励用户使用依赖于 Oracle DB 版本的查询。

因此,虽然这非常令人沮丧,但看起来任何想要对 NetSuite 的 SQL 实现做任何花哨的事情的人都无法使用 SQL-92 或更低版本中尚不存在的任何东西。因此,CTEs 和 ListAgg() 已被淘汰。


推荐阅读