sql >> Databáze >  >> RDS >> Mysql

Nelze spustit uloženou proceduru MySQL z Javy

Existují dva způsoby, jak to vyřešit:

  1. nastavte u připojení hodnotu noAccessToProcedureBodies=true vlastnost

    Například jako součást připojovacího řetězce:

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

    Ovladač JDBC pak vytvoří řetězce "INOUT" pro argumenty, aniž by vyžadoval metadata, jak říká výjimka.

  2. Udělení SELECT oprávnění na mysql.proc uživateli databáze

    Například ve výzvě mysql:

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

    To by samozřejmě umožnilo aplikaci číst celý mysql.proc tabulka, která obsahuje informace o všech uložené procedury ve všech databáze (včetně zdrojového kódu).



  1. Použití SSHTunnelForwarder pro připojení k databázi MySQL přes SSH

  2. efektivní způsob, jak otestovat, zda existuje řádek tabulky

  3. Co znamená symbol SQL Select || znamenat?

  4. Jak aktualizovat/smazat prvky ze dvou různých tabulek SQLite