帮助使用 SQL 存储过程通过 JSL 提取数据晚上好,
我是 JSL 的初学者。我怀疑我犯了语法错误或其他错误。
我正在尝试从 JSL 脚本运行 SQL 存储过程。我的数据库连接似乎工作正常(查看查询是否为 select 语句)。但是,我无法运行存储过程并提供数据表。下面我列出了:
1) 有效的查询公式(select 语句)和
2)无法运行我的存储过程的三个查询公式。
感谢您的关注。--Birdi(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,因此这将帮助您解决此问题。