Bonne soirée,
Je suis débutant en JSL. Je pense que j'ai une erreur de syntaxe ou quelque chose comme ça.
J'essaie d'exécuter une procédure stockée SQL à partir d'un script JSL. Mes connexions à la base de données semblent fonctionner correctement (voir lorsque la requête est une instruction select). Cependant, je ne parviens pas à exécuter la procédure stockée et à me fournir la table de données. Ci-dessous, j'ai répertorié :
1) la formule de requête qui fonctionne (l'instruction select) et
2) les trois formules de requête qui n'exécuteront pas ma procédure stockée.
Merci d'avoir jeté un œil. --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 );
Qu'est-ce que cela signifie d'utiliser insérer du code JSL ? Oui, je suis nouveau. Merci pour votre patience.
Je ne sais pas quelle base de données vous utilisez.J'utilise Oracle qui a une syntaxe différente, mais certains principes généraux peuvent être utiles :
- Execute SQL ne peut pas renvoyer directement les données de table à partir d’un appel à une procédure stockée.
- Si votre procédure stockée crée une table, effectuez un deuxième appel pour récupérer ces données.
Cela fonctionne dans 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 );
Le support technique de JMP peut peut-être vous aider avec la syntaxe correcte pour appeler une procédure pour votre base de données.
Voir https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/mp/457582#M70262 . Cela vous aidera à résoudre ce problème puisque vous utilisez SQL Server.