oracle dbms_lob.append не работает должным образом (показывает только часть документа) - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу добавить BLOB, извлеченный из БД, в другое поле BLOB.Это код

CREATE OR REPLACE FUNCTION CONCAT_BLOB(A IN BLOB, B IN BLOB) RETURN BLOB IS
       C BLOB;
    BEGIN
       dbms_lob.createtemporary(c, TRUE);
       DBMS_LOB.APPEND(c, A);
       DBMS_LOB.APPEND(c, B);
       RETURN c;
    END;



CREATE OR REPLACE PROCEDURE writeAppendTempLOB_proc IS
       SRC_blob    BLOB;
       SRC_blob2    BLOB;
BEGIN
    SELECT PDF INTO SRC_BLOB FROM T1 WHERE COD = 'XXX' AND NUM = 1;

    SELECT PDF INTO SRC_BLOB2 FROM T1 WHERE COD = 'XXX' AND NUM = 2;

    update T1 set pdf = CONCAT_BLOB(SRC_BLOB,SRC_BLOB2) where  COD = 'XXX' AND NUM = 3;

commit;
end;

это очевидно работает, потому что обновленный размер поля - это размер (src_blob) + размер (src_blob2).но когда я загружаю обновленное поле PDF, отображается только последняя добавленная страница (т. е. NUM = 2);Более того, когда я закрываю программу чтения PDF, она просит сохранить изменения документа.Любое предложение, чтобы исправить эту ошибку?спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...