NetSuite ODBC限制
我想知道有没有人知道NetSuite的ODBC SuiteAnalytics Connect Service通过OpenQuery使用的限制列表?我遇到了许多问题,我的一些更复杂的查询没有明显的原因失败,我最终开始将其缩小到某种奇怪的限制,这是我在Oracle ODBC中没有预料到的。以下是我到目前为止发现的几个例子:
- 无法使用基本CTE
基本Oracle查询:
在SQL Server中作为CTE的基本查询:
通过OpenQuery在Oracle NetSuite中作为CTE的基本查询(注意基本("不工作")的无用响应:
- 无法使用TRUNC(日期)函数
选择SYSDATE:
选择并截断SYSDATE(注意错误,即使according to Oracle, the format parameter is OPTIONAL:
使用两个明显必需的参数(使用Oracle页面中的有效"格式"掩码)选择和截断SYSDATE。注意"TRUNC返回错误"的无用错误:- 无法使用LISTAGG()函数
项目全名基本查询:
同一查询在尝试使用Oracle's correct format for LISTAGG时,请再次注意无用的"SQL语句中的语法错误":
- 单独运行良好的子查询由于某种原因插入到较大的查询中时似乎会失败(即将推出的示例™)
我正在努力理解这些限制并了解它们是什么,但这就像是在戳黑匣子!
解决方案
作为我之后的任何人的后续...
我直接联系了NetSuite,因为我在其他地方找不到答案,他们告诉我他们只支持SQL-92中存在的方法和对象。
以下是他们的回应:
根据我们的项目经理的说法,用户没有直接连接到Oracle数据库。SuiteAnalytics Connect使用其自己的(虚拟)架构,可通过与SQL-92兼容的方式进行查询。
因此,虽然这非常令人沮丧,但看起来任何想要对NetSuite的SQL实现做些什么的人都不能使用SQL-92或更低版本中已经不存在的任何东西。因此,CTE和ListAgg()已退出。某些特定于Oracle的函数也可以工作,但不能保证正常工作。建议>;用户不要使用取决于Oracle DB版本的查询。
相关文章