幫助使用 SQL 預存程序透過 JSL 提取數據晚安,
我是 JSL 的初學者。我懷疑我有語法錯誤或其他錯誤。
我正在嘗試從 JSL 腳本運行 SQL 預存程序。我的資料庫連線似乎運作正常(請參閱查詢何時是 select 語句)。但是,我無法運行預存程序並為我提供資料表。下面我列出了:
1) 有效的查詢公式(select 語句)和
2)三個查詢公式不會運行我的預存程序。
感謝您的瀏覽。 --伯迪 (JMP 17.0.0)
// HELP: The select statement works but the stored procedure doesn't.
//Does anyone have an idea as to what I'm missing?
// I can run the select statement, but I could use some help on running the stored procedure.
//query="SELECT * FROM [dbo].[tblCost_Outliers]"; // works
query = "exec dbo.procCost_PM_Birdi"; // doesn't work
//query="begin dbo.procCost_PM_Birdi; end;"; // doesn't work
//query = "dbo.procCost_PM_Birdi"; // doesn't work
//create connection
dbc = Create Database Connection(
"DSN=*****;UID=*****;PWD=*****;APP=JMP;WSID=*****;DATABASE=*****;"
);
//get result
Execute SQL( dbc, query );
//tidyup
Close Database Connection( dbc );
使用是什麼意思插入JSL代碼?是的,我是新人。感謝您的耐心等待。
資料存取回覆:幫助使用 SQL 預存程序透過 JSL 提取數據我不確定你使用的是什麼資料庫。我使用 Oracle,它具有不同的語法,但有一些可能有用的通用原則:
- 執行 SQL 無法直接從預存程序呼叫傳回表格資料。
- 如果您的預存程序建立了一個表,請進行第二次呼叫以檢索該資料。
這在 Oracle 中有效:
execproc = "begin myuser.my_oracle_proc; end";
query = "SELECT * FROM myuser.mytable";
// Run the procedure to load the table tblCost_Outliers
Execute SQL( dbc, execproc );
// Retrieve the table into the variable dt
dt = Execute SQL( dbc, query );
//tidyup
Close Database Connection( dbc );
也許 JMP 技術支援可以幫助您使用正確的語法來呼叫資料庫的過程。
回覆:幫助使用 SQL 預存程序透過 JSL 提取數據看https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/mp/457582#M70262 。 由於您使用的是 SQL Server,因此這將幫助您解決此問題。