我想知道是否有人知道netsuite的odbc suiteanalytics connect服务通过openquery使用的限制列表?我遇到了很多问题,一些更复杂的查询无缘无故地失败了,最后我开始将它缩小到某种奇怪的限制,这是我从oracle odbc中没有想到的。以下是我目前发现的几个例子:
不能使用基本cte
基本oracle查询:
sql server中作为cte的基本查询:
通过openquery在oracle netsuite中以cte的形式进行基本查询(注意,没有帮助的响应是basic(“don't work”):
无法使用trunc(date)函数
选择系统日期:
选择并截断sysdate(注意错误,即使根据oracle,format参数是可选的:
使用两个明显必需的参数(使用oracle页面中的有效“格式”掩码)选择并截断sysdate。注意“trunc returned error”的无用错误:
无法使用listag()函数
物料全名基本查询:
同样的查询在尝试使用oracle的listagg正确格式时,请再次注意没有帮助的“sql语句中的语法错误”:
由于某种原因,当插入到一个较大的查询中时,自己工作正常的子查询似乎会失败(示例很快就会出现)™)
我试图理解这些局限性,了解它们是什么,但这就像戳黑盒子一样!
1条答案
按热度按时间c8ib6hqw1#
作为对我之后任何人的后续行动。。。
我直接联系了netsuite,因为我在别处找不到答案,他们告诉我他们只支持sql-92中存在的方法和对象。
以下是他们的回答:
根据我们的项目经理,用户没有直接连接到oracle数据库>。suiteanalytics connect使用自己的(虚拟)架构,该架构可以>以符合sql-92的方式进行查询。
一些特定于oracle的功能也可以工作,但不能保证正常工作。>不鼓励用户使用依赖于oracledb版本的查询。
因此,尽管这非常令人沮丧,但似乎任何想使用netsuite的sql实现的人都不能使用sql-92或更低版本中还不存在的东西。因此,ctes和listag()都是out。