Buenas noches,
Soy principiante en JSL. Sospecho que tengo un error de sintaxis o algo así.
Estoy intentando ejecutar un procedimiento almacenado de SQL desde un script JSL. Las conexiones a mi base de datos parecen funcionar correctamente (ver cuando la consulta es una declaración de selección). Sin embargo, no puedo lograr que el procedimiento almacenado se ejecute y me proporcione la tabla de datos. A continuación, enumero:
1) la fórmula de consulta que funciona (la declaración select) y
2) las tres fórmulas de consulta que no ejecutarán mi procedimiento almacenado.
Gracias por echar un vistazo. --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é significa eso de usar? ¿Cómo insertar código JSL? Sí, soy nuevo. Gracias por tu paciencia.
No estoy seguro de qué base de datos estás usando.Utilizo Oracle, que tiene una sintaxis diferente, pero existen algunos principios generales que pueden resultar útiles:
- Ejecutar SQL no puede devolver datos de tabla directamente desde una llamada a un procedimiento almacenado.
- Si su procedimiento almacenado crea una tabla, realice una segunda llamada para recuperar esos datos.
Esto funciona en 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 );
Quizás el soporte técnico de JMP pueda ayudarlo con la sintaxis correcta para llamar a un procedimiento para su base de datos.
Ver https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/mp/457582#M70262 . Esto le ayudará con este problema ya que está utilizando SQL Server.