Buonasera,
Sono un principiante di JSL. Penso di avere un errore di sintassi o qualcosa del genere.
Sto provando a eseguire una stored procedure SQL da uno script JSL. Le mie connessioni al database sembrano funzionare correttamente (vedi quando la query è un'istruzione select). Tuttavia, non riesco a far eseguire la stored procedure e a darmi la tabella dati. Di seguito ho elencato:
1) la formula di query che funziona (l'istruzione select) e
2) le tre formule di query che non eseguono la mia stored procedure.
Grazie per averci dato un'occhiata. --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 );
Cosa significa usare per inserire codice JSL? Sì, sono nuovo. Grazie per la pazienza.
Non sono sicuro di quale database stai utilizzando.Utilizzo Oracle che ha una sintassi diversa, ma ci sono alcuni principi generali che possono essere utili:
- Esegui SQL non può restituire direttamente i dati della tabella da una chiamata alla procedura memorizzata.
- Se la procedura memorizzata crea una tabella, effettua una seconda chiamata per recuperare i dati.
Funziona in 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 );
Forse il supporto tecnico JMP può aiutarti con la sintassi corretta per richiamare una procedura per il tuo database.
Vedere https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/mp/457582#M70262 . Questo ti aiuterà con questo problema poiché stai utilizzando SQL Server.