В моей базе данных Postgres есть следующая функция:
SELECT ppm.f_pp_i
(
<titel character varying>,
<beschreibung character varying>,
<projekt_start date>,
<projekt_ende date>,
<dauer_in_monaten integer>,
<planning_it character varying>,
<klassifizierung integer>,
<klassifizierung_fm integer>,
<prozesscluster integer>,
<zielgruppe character varying>,
<anzahl_user integer>,
<projektleiter_it character varying>,
<business_partner_abteilung integer>,
<projektleiter_fb character varying>,
<zugeordnete_abteilung integer>,
<investition numeric>,
<interne_kapazitaeten_in_fte numeric>,
<interne_personalkosten numeric>,
<itx_belastungen numeric>,
<externe_kosten numeric>,
<runkosten numeric>,
<erloese numeric>,
<projektbild_bin bytea>,
<dokument_1_name character varying>,
<dokument_1_bin bytea>,
<dokument_2_name character varying>,
<dokument_2_bin bytea>,
<dokument_3_name character varying>,
<dokument_3_bin bytea>,
<dokument_4_name character varying>,
<dokument_4_bin bytea>,
<dokument_5_name character varying>,
<dokument_5_bin bytea>
)
Я вызываю функцию из моего кода Java с CallableStatement. Но Документы также могут быть нулевыми. Так что для этого случая я попытался установить параметр на ноль.
Например, для projektbild:
if(byteArrayBild == null)
{
properCase.setNull(23,Types.BLOB);
}
else
{
properCase.setBytes(23, byteArrayBild);
}
Но это не работает. Я получил ошибку, что функция не выходит. Я думаю, что значение NULL похоже на исчезновение. Так Postgres не видит значение NULL?
Если я установлю все документы с файлом, все будет работать нормально. Просто если я оставлю документы пустыми, это не сработает.