Hej,
tworzę aplikację w javie korzystającą z bazy danych
napisałem dwie prawie identyczne procedury:
ELSEIF Akcja = 'L_KRZYWYCH_DO_PRZEJSCIOWEJ' THEN
BEGIN
SELECT p.Va FROM ble.pomiar p
GROUP BY p.Va
HAVING COUNT(p.Va) > 3;
END;
która zwraca 13 rekordów
oraz:
ELSEIF Akcja = 'L_KRZYWYCH_DO_ANODOWEJ' THEN
BEGIN
SELECT p.Vg FROM ble.pomiar p
GROUP BY p.Vg
HAVING COUNT(p.Vg) > 3;
END;
która zwraca 10 rekordów
Oba zapytania działają wywoływane z poziomu bazy danych.
Jest jednak problem w czasie wywoływania ich z poziomu aplikacji w javie, oto fragment kodu za to odpowiedzialny
MojResultSet mrs = new MojResultSet();
ResultSet rs = mrs.wybierzProcedure(POLECENIE_LKRZYWYCH, 0, "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", null, "", "", 0, 0, 0, 0, 0, 0, 0);
try{
while(rs.next()){
liczba_krzywych++;
}
rs.close();
mrs.zamknijCallableStatement();
mrs.zamknijPolaczenie();
} catch (SQLException ex) {
Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
}
W przypadku gdy wywołuje ten kod z procedurą L_KRZYWYCH_DO_ANODOWEJ wszystko jest w porządku. Jednak gdy robię to z procedurą 'L_KRZYWYCH_DO_PRZEJSCIOWEJ' pojawia się bląd: SQLException: Data truncation: Data too long for column 'Akcja' at row 1
SQLState: 22001"
O co chodzi?
Proszę nie zwracać uwagi na sens tego zapytania, bo to jest coś nad czym jeszcze pracuje. Zastanawiam się czemu w przypadku dwóch praktycznie identycznych zapytań działa tylko dla jednego.