Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'exécuter une procédure stockée MySQL à partir de Java

Il existe deux façons de résoudre ce problème :

  1. définir le noAccessToProcedureBodies=true de la connexion propriété

    Par exemple, dans le cadre de la chaîne de connexion :

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

    Le pilote JDBC créera alors des chaînes "INOUT" pour les arguments sans nécessiter de métadonnées comme le dit l'exception.

  2. Accorder SELECT privilèges sur mysql.proc à l'utilisateur de la base de données

    Par exemple dans l'invite mysql :

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

    Bien sûr, cela permettrait à l'application de lire l'intégralité de mysql.proc tableau contenant des informations sur tous procédures stockées dans tous bases de données (y compris le code source).