Ich habe den folgenden Beispielcode, aber ich habe die verschiedenen Verhaltensweisen, wenn Varchar und Integer-Spalten in der Behandlung von Ausnahmen kommt.Fehlercode 1265 nicht in Ausnahmeblock eher kommen aus der Prozedur
Ich hole Namen und Gehaltsspalten Wert aus der Tabelle, aber ich habe Variablen in der Prozedur deklariert, die weniger die Tabellenspaltengröße ist.
so für Integer-Spalte Ich erhalte die folgenden Fehler
1264 | ERROR 1264 (22003): Bereich Wert für Spalte ‚v_sal‘
es wird immer in meinen Ausnahmeblock, die ich in dem Verfahren codierte
aber für varchar Spalt Ich erhalte die folgenden Fehler
eRROR 1265 (01000): Daten abgeschnitten für Spalte ‚v_ename‘ in Zeile 1
aber es ist nicht in meinem Ausnahmeblock immer eher Fehler werfen und kommen aus Verfahren
warum das Verhalten also, wie ich mit diesem VARCHAR-Szenario umgehen muss, das in meinen Ausnahmeblock kommen sollte, anstatt abrupt zu kommen.
Ich verwende MySQL 5,7
Table structure
empid int(4)
ename varchar(10)
sal smallint(6)
CREATE PROCEDURE samp_proc(in p_empno int(4),
out p_sal smallint,
out p_error_code INT,
out p_errmsg VARCHAR(500)
)
BEGIN
declare v_ename varchar(3);
declare v_sal tinyint;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
begin
GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE,
@errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
SET @full_error = CONCAT("ERROR ", @errno, " (", @sqlstate, "): ", @text);
set p_error_code = @errno;
set p_errmsg = @full_error ;
select p_error_code,p_errmsg;
rollback;
end;
select ename,sal into v_ename,v_sal from kk_chk where empid = p_empno;
/* since ename is first in the fetch the varchar behavior takes the precedence
if we make sal column as first in the fetch the integer behavior takes the precdednce */
end $$
delimiter ;
dank & Grüße
Karthikeyan.R
Danke für die Antwort, mit dem gleichen Code nur Tabellenname geändert, aber ich bekomme immer noch das gleiche Verhalten für Name Spalte. Fehler 1265 (01000): Daten für Spalte 'v_ename' abgeschnitten. Aber Sie erhalten Fehlercode 1406, aber für mich 1265, wie kommen Codes für dasselbe Szenario irgendwelche Konfigurationseinstellungen? – Keyan