Ejecucion de procedimientos almacenados desde AS400
Publicado por Francisco (2 intervenciones) el 14/09/2018 17:43:31
Hola buenos días a todos.
Hago a este foro la siguiente consulta:
Tengo almacenados los nombres de procedimientos almacenados en una tabla, dependiendo de ciertas condiciones toma un nombre de procedimiento a ejecutar.
El programa que valida las condiciones es un programa en RPGLE, luego este programa RPGLE llama a un SQLRPGLE y le envía el nombre del procedimiento a ejecutar como parámetro, pero no lo esta ejecutando, creo que algo estoy haciendo mal.
Este es el código del programa SQLRPGLE que llama al procedimiento
En la variable NAMESP viene el nombre del procedimiento almacenado, por ejemplo PRUEBA01
Y este es el código del procedimiento almacenado PRUEBA01
Al compilarlos no me da ningún error de compilación, al ejecutarlos no me da ningún error de ejecución, lo único es que no esta recuperando el valor de respuesta.
Dentro del SQLRPGLE quito el nombre de la variable y le coloco directo el nombre del procedimiento y ejecutarlo con los mismos parámetros, si recupera el valor de respuesta.
Quedo a la espera de sus comentarios, espero me puedan ayudar, gracias.
Hago a este foro la siguiente consulta:
Tengo almacenados los nombres de procedimientos almacenados en una tabla, dependiendo de ciertas condiciones toma un nombre de procedimiento a ejecutar.
El programa que valida las condiciones es un programa en RPGLE, luego este programa RPGLE llama a un SQLRPGLE y le envía el nombre del procedimiento a ejecutar como parámetro, pero no lo esta ejecutando, creo que algo estoy haciendo mal.
Este es el código del programa SQLRPGLE que llama al procedimiento
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
C *ENTRY PLIST
C PARM NUMTEL 12
C PARM NUMANE 08 0
C PARM VAREÑE 03
C PARM PARM01 20
C PARM PARM02 20
C PARM PARM03 20
C PARM PARM04 20
C PARM PARM05 20
C PARM NAMESP 30
C PARM VARRES 100
*
C EXSR PROCE
*
C EVAL *INLR='1'
C PROCE BEGSR
*
C/EXEC SQL
C+ CALL :NAMESP
C+ (:NUMTEL, :NUMANE, :VAREÑE, :PARM01,
C+ :PARM02, :PARM03, :PARM04, :PARM05, :VARRES)
C/END-EXEC
C ENDSR
En la variable NAMESP viene el nombre del procedimiento almacenado, por ejemplo PRUEBA01
Y este es el código del procedimiento almacenado PRUEBA01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE PROCEDURE QSTCPGMGT.PRUEBA01 (
IN P_NUMTEL CHAR(12),
IN P_NUMANE NUMERIC(08,0),
IN P_VAREÑE CHAR(03),
IN P_PARM01 CHAR(12),
IN P_PARM02 CHAR(12),
IN P_PARM03 CHAR(12),
IN P_PARM04 CHAR(12),
IN P_PARM05 CHAR(12),
OUT P_VARRES CHAR(100)
)
LANGUAGE SQL
BEGIN
-- BUSCAMOS EL IMEI DEL TELEFONO RECIBIDO COMO PARAMETRO
SELECT TCICC INTO P_VARRES FROM QSTCDATGT.V1SERHED
WHERE TCNTEL = P_NUMTEL;
END
Al compilarlos no me da ningún error de compilación, al ejecutarlos no me da ningún error de ejecución, lo único es que no esta recuperando el valor de respuesta.
Dentro del SQLRPGLE quito el nombre de la variable y le coloco directo el nombre del procedimiento y ejecutarlo con los mismos parámetros, si recupera el valor de respuesta.
Quedo a la espera de sus comentarios, espero me puedan ayudar, gracias.
Valora esta pregunta
0