sql >> データベース >  >> RDS >> Mysql

JavaからMySQLストアドプロシージャを実行できません

    これを解決するには2つの方法があります:

    1. 接続のnoAccessToProcedureBodies=trueを設定します プロパティ

      たとえば、接続文字列の一部として:

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

      次に、JDBCドライバーは、例外のようにメタデータを必要とせずに、引数の「INOUT」文字列を作成します。

    2. SELECTを付与する mysql.procの権限 データベースユーザーへ

      たとえば、mysqlプロンプトの場合:

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

      もちろん、これにより、アプリケーションはmysql.proc全体を読み取ることができます。 すべてに関する情報を含むテーブル すべてのストアドプロシージャ データベース(ソースコードを含む)。



    1. クエリ結果から結果のランダムサンプルを選択します

    2. 動的な数の引数を使用してMySQLストアド関数を作成します

    3. SQL Developer 4.1.2

    4. 特定の列を取得するためのHibernateCriteriaクエリ