本文介绍了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版本的查询。
这篇关于NetSuite ODBC限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!