これを解決するには2つの方法があります:
-
接続の
noAccessToProcedureBodies=true
を設定します プロパティたとえば、接続文字列の一部として:
jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
次に、JDBCドライバーは、例外のようにメタデータを必要とせずに、引数の「INOUT」文字列を作成します。
-
SELECT
を付与するmysql.proc
の権限 データベースユーザーへたとえば、mysqlプロンプトの場合:
GRANT SELECT ON mysql.proc TO 'user'@'localhost';
もちろん、これにより、アプリケーションは
mysql.proc
全体を読み取ることができます。 すべてに関する情報を含むテーブル すべてのストアドプロシージャ データベース(ソースコードを含む)。