У меня есть функция, у которой есть параметр. Один из параметров - clob, куда я передаю tiff-файл с экрана внешнего интерфейса. В интерфейсе данные tiff встраиваются в xaml и вызывают функцию. Я пытаюсь сохранить файл TIFF в таблице. Я могу вставить tiff, длина которого меньше 32768. Когда я пытаюсь вставить больше, он не вставляется в таблицу. Я даже не могу найти длину файла. Ничего не показывает. Я попытался поместить его в переменную привязки и немедленно выполнить оператор вставки. ничего не вставлено.
CREATE OR REPLACE FUNCTION insert_tiff_data
(
as_fno varchar2(10),
as_a_code IN amc.amc_code%TYPE,
as_app_sign clob,
as_sataus IN VARCHAR2
) RETURN VARCHAR2 IS
--declared variables here
BEGIN
ls_file := as_a_code || '_' || as_fno || '.TIF';
BEGIN
BEGIN
SELECT COUNT(*)
INTO ll_count
FROM tiff_data
WHERE filename = ls_file AND
image_type = 'S' AND
fid = as_fno;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20780,
excep);
ll_count := 0;
END;
IF ll_count >= 1 THEN
RETURN 'Z';
ELSE
IF length(as_app_sign) > 0 THEN
BEGIN
INSERT INTO tiff_data
(filename,
image_type,
amc_code,
fid,
image_date,
image,
editor_id,
xy_cor)
VALUES
(ls_file,
'S',
as_a_code,
as_fno,
SYSDATE,
plf_base64_clob_to_blob(as_app_sign),
'',
'');
IF SQL%ROWCOUNT > 0 THEN
RETURN 'Y';
ELSE
RETURN 'C';
END IF;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20781,
excep);
RETURN 'D';
END;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20782,
excep);
RETURN 'E';
END;
RETURN 'F';
END insert_tiff_data;
Я думаю, что функция закрылась ненормально при попытке доступа к этой переменной as_app_sign .