<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我在JMP 12中使用Query Builder查詢數據庫以從中檢索信息。
我們已經有很多已編寫的代碼用於使用不同的應用程序執行此操作,我希望我可以將JMP中的代碼複製並粘貼為“自定義SQL”並且它將運行。然而,它並沒有像我希望的那樣順利進行,我得到了一條消息說明
運行SQL查詢時出錯:
[Oracle] [ODBC] {Ora] ORA-00911:無效字符
[SQLSTATE = HY000]
我問了幾個了解SQL的人,他們看不出這個代碼有什麼“錯誤”
/ *創建日期來自FORMULATION_SAMPLES表和多個錯誤跟踪圖* /
選擇
sample_value_summary.sample_identifier,order_in_workflow AS“ORDER”,creation_date,
max(param_def_lov_id = 19然後value_string結束時的情況)“MATERIAL”,
max(param_def_lov_id = 18然後value_string結束時的情況)“BATCH”,
max(param_def_lov_id = 5然後值結束時的情況)“TARGET“
max(param_def_lov_id = 24然後值結束時的情況)“ACTUAL“
(max(param_def_lov_id = 24然後值結束的情況) - max(param_def_lov_id = 5然後值結束時的情況))* 1000為“ERROR [mg]”,
ABS((max(param_def_lov_id = 24然後值結束時的情況) - max(param_def_lov_id = 5然後值結束時的情況))* 1000)為“ERROR [mg]”,
ROUND(((當param_def_lov_id = 24然後值結束時的情況) - max(param_def_lov_id = 5然後值結束時的情況))/ max(param_def_lov_id = 5然後值結束時的情況))* 100,3)為“ERROR [ %]“,
ABS(ROUND(((當param_def_lov_id = 24然後值結束時的情況) - max(param_def_lov_id = 5然後值結束時的情況))/ max(param_def_lov_id = 5然後值結束時的情況))* 100,3))as as “ABSOLUTE ERROR [%]”,
max(param_def_lov_id = 34然後值/ 86400 + to_timestamp('01011970','dd-mm-yyyy')結束時的情況)“START TIME”,
max(param_def_lov_id = 35然後值/ 86400 + to_timestamp('01011970','dd-mm-yyyy')結束時的情況)“停止時間”,
(max(param_def_lov_id = 35然後值結束的情況) - max(param_def_lov_id = 34然後值結束時的情況))為“PROCESS TIME”
來自SCO_HTFS.sample_value_summary,SCO_HTFS.formulation_samples
其中sample_value_summary.sample_identifier = formulation_samples.sample_identifier和
(5,18,19,24,34,35)中的param_def_lov_id和(11,12)中的bms_module_id
和exp_plan_sample_id in(從sco_htfs.exp_plan_samples中選擇exp_plan_sample_id,其中exp_plan_id in(
從sco_htfs.experiment_plans中選擇exp_plan_id,其中experiment_id = / *在這裡輸入EXPERIMENT ID * / 4742))
/ *刪除此行,如果沒有時間條件* /和creation_date之間to_timestamp(/ * ENTER START DATE HERE * /'01012014','dd-mm-yyyy')和current_timestamp
group by sample_value_summary.sample_identifier,order_in_workflow,creation_date
order by sample_value_summary.sample_identifier,order_in_workflow;
此代碼在其他應用程序中成功運行,因此它“正確”但不兼容,任何人都可以建議可能正在停止正常運行的內容嗎?我有一些這些消息給出了相同的信息,因此它告訴我這些寫入的方式和JMP需要它們的方式有一些細微的差別。
問候
大衛
我個人懷疑評論是問題 - 我在工作的Oracle查詢中添加了C風格的註釋,但查詢仍然有效。
當我使用d_barnett的SQL並嘗試將其提交給我的Oracle時,我得到的錯誤是:
[Oracle] [ODBC] [Ora] ORA-00933:SQL命令未正確結束[SQLSTATE = HY000]
而不是無效的角色。
這是在Windows上,而不是Mac,對嗎?
需要注意的一件事是風格的引號(單引號或雙引號)偷偷摸摸到你正在粘貼的SQL。 首先將SQL粘貼到記事本中,然後將其從那裡複製/粘貼到JMP中。
我建議嘗試回到一個更簡單的SQL版本,它可以工作並開始添加部分,直到它再次失敗。 如果Oracle可以告訴我們無效字符是什麼,那肯定會很棒。
如果您發現無效字符,請回复此處。 也許JMP需要掃描自定義SQL以獲取樣式的引號,並在提交SQL之前將它們轉換為正常引號(如果確實您的問題確實是樣式引號)。
謝謝,
埃里克