H2 вызывает исключение, потому что не может преобразовать пустую строку ''
в число.H2 внутренне использует java.lang.Long.parseLong("")
, который завершается с java.lang.NumberFormatException: For input string: ""
.
Для сценария SQL:
drop table tbl;
create table tbl(id int primary key, name varchar(255));
insert into tbl values(1, 'Hello');
UPDATE tbl SET name='Hi' WHERE id='';
H2 выдает исключение:
Data conversion error converting [22018-161]
Большинство другихбазы данных (PostgreSQL, Apache Derby, HSQLDB) выдают аналогичное исключение.
Вам необходимо использовать число или IS NULL
, например:
UPDATE tbl SET name='Hi' WHERE id IS NULL;
или
UPDATE tbl SET name='Hi' WHERE id = 0;