本文介紹了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兼容的方式進行查詢。
某些特定于Oracle的函數也可以工作,但不能保證正常工作。建議>;用戶不要使用取決于Oracle DB版本的查詢。
因此,雖然這非常令人沮喪,但看起來任何想要對NetSuite的SQL實現做些什么的人都不能使用SQL-92或更低版本中已經不存在的任何東西。因此,CTE和ListAgg()已退出。
這篇關于NetSuite ODBC限制的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,