こんばんは、
私は JSL 初心者です。構文エラーか何かがあるのではないかと思います。
JSL スクリプトから SQL ストアド プロシージャを実行しようとしています。データベース接続は正常に動作しているようです (クエリが選択ステートメントである場合を参照)。ただし、ストアド プロシージャを実行してデータ テーブルを取得することはできません。以下にリストします。
1) 機能するクエリ式(選択ステートメント)と
2) ストアド プロシージャを実行しない 3 つのクエリ式。
ご覧いただきありがとうございます。 --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 コードを挿入するには? はい、私は初心者です。お待ちいただきありがとうございます。
どのデータベースを使用しているのかわかりません。私は構文が異なる Oracle を使用していますが、役立つ一般原則がいくつかあります。
- SQL 実行では、ストアド プロシージャの呼び出しから直接テーブル データを返すことはできません。
- ストアド プロシージャでテーブルを作成する場合は、2 回目の呼び出しを行ってそのデータを取得します。
これは 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 テクニカル サポートは、データベースのプロシージャを呼び出すための正しい構文を教えてくれるかもしれません。