Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można pobrać wartości, którą chciałem wybrać za pomocą procedury przechowywanej

Jeśli chcesz, aby wartość zwracana za pośrednictwem parametru OUT procedury składowanej nie była używana, należy użyć parametru CallableStatement skojarzonego z parametrem OUT procedury składowanej. Na przykład dla stołu testowego

CREATE TABLE `allsections_list` (
 `SECTION_ID` int(11) NOT NULL,
 `SECTION_NAME` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`SECTION_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

zawierające przykładowe dane

SECTION_ID  SECTION_NAME
----------  ---------------
         1  one_section
         2  another_section

i procedura składowana

CREATE PROCEDURE `getSECTION_NAME`(IN myID INT, OUT myName VARCHAR(50))
BEGIN
   SELECT SECTION_NAME INTO myName FROM allsections_list WHERE SECTION_ID = myID;
END

następnie następujący kod Java

try (CallableStatement myFirstCs = conn.prepareCall("{call getSECTION_NAME(?,?)}")) {
    myFirstCs.setInt(1, 2);  // set IN parameter "myID" to value 2
    myFirstCs.registerOutParameter(2, Types.VARCHAR);
    myFirstCs.execute();
    String sectionName = myFirstCs.getString(2);  // get value from OUT parameter "myName"
    System.out.println(sectionName);
}

wydruki

another_section


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql zapytanie PHP:chcę, aby określone elementy były najpierw, a następnie posortować resztę elementów

  2. BŁĄD:SQLSTATE[HY000] [2002] Nie można nawiązać połączenia, ponieważ maszyna docelowa aktywnie je odrzuciła

  3. Jak usunąć wszystkie zduplikowane rekordy w tabeli MySQL bez tabel tymczasowych?

  4. Dostęp do MySQL z Pythona 3:Odmowa dostępu dla użytkownika

  5. Nie można połączyć się z serwerem mysql za pomocą go i docker - wybierz tcp 127.0.0.1:3306:connect:połączenie odrzucone