Buenas.
Yo tenía un procedimiento con la siguiente cabecera:
PROCEDURE PTLP_CONSULTAR_PERFIL_USUARIO (I_USUARIO_BUSCAR IN VARCHAR2, I_CONSULTOR IN VARCHAR2,
I_PANTALLA IN VARCHAR2, O_MENSAJE OUT VARCHAR2,
O_PERFILES OUT VARCHAR2 )
Y lo llamaba así desde mi JSP:
miConexion.setSentenciaBase("PTLPKG_VER_PASSWORDS. PTLP_CONSULTAR_PERFIL_USUARIO", 5);
miConexion.sentenciaBase.setString(1, pReq.getQualifiedParameter(paramDni).trim());
miConexion.sentenciaBase.setString(2, pReq.getUser().getName());
miConexion.sentenciaBase.setString(3, "D");
miConexion.sentenciaBase.registerOutParameter(4,Or acleTypes.VARCHAR);
miConexion.sentenciaBase.registerOutParameter(5,Or acleTypes.VARCHAR);
miConexion.ejecutar();
El problema viene cuando le he añadido un parámetro más de entrada (el que está en negrita):
PROCEDURE PTLP_CONSULTAR_PERFIL_USUARIO (I_USUARIO_BUSCAR IN VARCHAR2, I_CONSULTOR IN VARCHAR2,
I_PANTALLA IN VARCHAR2, O_MENSAJE OUT VARCHAR2,
O_PERFILES OUT VARCHAR2, I_LOGIN IN VARCHAR2 DEFAULT NULL )
Y lo llamo así:
miConexion.setSentenciaBase("PTLPKG_VER_PASSWORDS. PTLP_CONSULTAR_PERFIL_USUARIO", 5);
miConexion.sentenciaBase.setString(1, pReq.getQualifiedParameter(paramDni).trim());
miConexion.sentenciaBase.setString(2, pReq.getUser().getName());
miConexion.sentenciaBase.setString(3, "D");
miConexion.sentenciaBase.registerOutParameter(4,Or acleTypes.VARCHAR);
miConexion.sentenciaBase.registerOutParameter(5,Or acleTypes.VARCHAR);
if(pReq.getQualifiedParameter(paramUsuario)!=null)
miConexion.sentenciaBase.setString(6, pReq.getQualifiedParameter(paramUsuario));
miConexion.ejecutar();
Pero ahora me da el error: java.sql.SQLException: Índice de columna no válido
¿Alguien sabe a qué se debe?
Muchas gracias por anticipado.