Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Upload files docx/xlsx / 5 сообщений из 5, страница 1 из 1
03.04.2017, 19:07
    #39432294
pvasea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Upload files docx/xlsx
Выполняется выгрузка файлов в приложении(см Upload.sql):
Файлы типов jpg, doc, xls выгружаются без проблем. При выгрузке docx или xlsx следует ошибка:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
...
Рейтинг: 0 / 0
04.04.2017, 09:14
    #39432540
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Upload files docx/xlsx
Тут причина не в типе файла, а вашем коде. Проверьте длину и тип данных в выделенных местах.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
DECLARE
    l_content           blob;
    l_mime_type         varchar2(48); -- А тут почему размерность поля, в 4 раза меньше чем в таблице apex_application_files, почему не объявить как apex_application_files.mime_type%type, а затем писать на форумы такие тупые ошибки.;
    l_name              varchar2(255);
    l_filename varchar2(255);
    l_description varchar2(4000);
    l_id number;
    l_ticket number;
	
BEGIN
	l_filename := :P41_FILENAME;
      	l_name := substr(l_filename,instr(l_filename,'/')+1);
        _description  := :P41_DFDESCRIPTION;
        if :P4_DFTICKET is NULL then
           l_ticket := -99999;
        else l_ticket := v('P4_DFTICKET'); --Проверьте что возвращает, и почему одно и тоже значение вытаскивается разными способами на соседних строчках
        end if;

    for c1 in (select id, mime_type, blob_content
                 from apex_application_files
                where name = l_filename ) loop
        l_id        := c1.id;
        l_content   := c1.blob_content;
        l_mime_type := c1.mime_type; 
    end loop;
    insert
      into TTMS_TATTACHMENTS (dfattachment, dfname, dfdescription, dfmimetype, dfcontent, dfticket,dfdate)
    values (l_id, l_name, l_description, l_mime_type, l_content, l_ticket, sysdate );
    delete
      from apex_application_files
     where name = l_filename;
exception when others then
    raise_application_error(-20001, 'Exception encountered adding document: '||sqlerrm);
END;
...
Рейтинг: 0 / 0
04.04.2017, 14:50
    #39432931
pvasea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Upload files docx/xlsx
blkangel,
Не стоит считать себя умнее других. См. https://docs.oracle.com/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CHDCGIEF ---> Create a Procedure to Download Documents.
И первое ,что я сделал , изменил длину l_mime_type(см debugDOCX.jpg)
...
Рейтинг: 0 / 0
04.04.2017, 14:52
    #39432934
pvasea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Upload files docx/xlsx
blkangel,
...
Рейтинг: 0 / 0
04.04.2017, 15:40
    #39432995
pvasea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Upload files docx/xlsx
Проблема РЕШЕНА !
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Upload files docx/xlsx / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]