sql >> Databáze >  >> RDS >> PostgreSQL

Nelze zavolat 11 uloženou proceduru PostgreSQL pomocí režimu spánku

Vzhledem k tomu, že pgJDBC 42.2.5 byl vydán před (srpen 2018) vydáním PostgreSQL 11 (říjen 2018), myslím si, že se v současné době jedná o problém v ovladači JDBC pro samotný PostgreSQL. Vytvořil jsem problém v úložišti GitHub.

Chcete-li to obejít, můžete přepsat STORED PROCEDURE jako FUNCTION a použijte @NamedStoredProcedureQuery nebo přímo komunikovat s CallableStatement JDBC např.:

Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/", "postgres", "postgres");

CallableStatement callableStatement = conn.prepareCall("{call f_raise_wage_employee_older_than(?,?)}");
callableStatement.setInt(1, 20);
callableStatement.setInt(2, 500);
callableStatement.executeUpdate();

Nebo spusťte nativní dotaz pomocí EntityManager :

this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");

Tuto odpověď aktualizuji, jakmile dostanu odpověď od správce pgJDBC.

AKTUALIZACE:

Toto téma je již diskutováno v Postgres Mailing listu (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us ) a v současné době neexistuje žádné řešení. Jediný způsob je předat nativní SQL dotazy do databáze nebo přepsat STORED PROCEDURE jako FUNCTION



  1. exportovat obsah tabulky databáze mysql do souboru PDF pomocí php

  2. Jak získat rozměrnost sloupce ARRAY?

  3. jaký je lepší způsob, jak indexovat data z Oracle/relačních tabulek do elastického vyhledávání?

  4. Příkaz MySQL Select a IF().