sql >> Base de Datos >  >> RDS >> Mysql

No se puede ejecutar un procedimiento almacenado de MySQL desde Java

Hay dos formas de resolver esto:

  1. establezca el noAccessToProcedureBodies=true de la conexión propiedad

    Por ejemplo, como parte de la cadena de conexión:

    jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
    

    El controlador JDBC luego creará cadenas "INOUT" para los argumentos sin requerir metadatos como dice la excepción.

  2. Otorgar SELECT privilegios en mysql.proc al usuario de la base de datos

    Por ejemplo, en el indicador de mysql:

    GRANT SELECT ON mysql.proc TO 'user'@'localhost';
    

    Por supuesto, esto permitiría que la aplicación lea todo el mysql.proc tabla que contiene información sobre todos procedimientos almacenados en todos bases de datos (incluido el código fuente).