|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Возможно, надо что-то поменять в настройках APACH - Делаю -- For i In ( Select * from T ) loop htp.p( i.field ); end loop ; Когда записей мало - порядка 10,20 тысяч - всё хорошо, но когда таким же образом пытаюсь передать 100 и более - вылетает 404 ошибка - мол страницу не нашел Поменял TimeOut - сделал побольше - всё равно работает долго, но вылетает ошибка. В чем причина ??? - крутить APACH или использовать какие нить параметры дополнительные. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 12:02 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
For i In ( Select * from T ) loop htp.p( i.field ); end loop ; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 14:11 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Простите не туда нажал, сейчас напишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 14:11 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
DECLARE LOCATOR CLOB; STATUS INTEGER; L VARCHAR2(32767); I INTEGER; BEGIN FOR I IN (SELECT * FROM T) LOOP LOCATOR := I.FIELD STATUS := 4000; I := 1; L := 'jkj'; WHILE LENGTH(L) != 0 LOOP L := DBMS_LOB.SUBSTR(LOCATOR, STATUS, I); I := I + STATUS; HTP.PRN(L); END LOOP; END LOOP; EXCEPTION WHEN OTHERS THEN HTP.PRN('Ошибка'); END; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 14:16 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Что-то я сегодня явно не выспался, прошу модератора удалить мои верхние посты. Выражаю свои глубокие извинения. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 14:19 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Немного изменил код For i In ( Select * from T ) loop htp.p( i.field ); htp.flush ; <<<<<------------------------ вот здесь end loop ; выгрузился большой битый файл с ошибкой ORA-04030: out of process memory when trying to allocate 16396 bytes (koh-kghu sessi,pl/sql vc2) Что , я заполнил всю PGA ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 19:39 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
i.field - это clob? Почему htp.p используется, а не htp.prn? И чем вас не устраивает скрипт сверху? только вот тут Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 13:07 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Уважаемый PITMOV , я просто мастерю XML что бы не быть голословным l_xml_body - здесь clob FOR L IN ( Select * from T where UPPER(Trim(uname)) = UPPER(Trim(p_user )) order by 1,2,7,4,5 ) LOOP l_xml_body := l_xml_body ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_BR)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_LTC)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDOGOVOR)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_DEVICE)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNUMBER_TEL) ||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_USL ) ||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFSERVICETYPE)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFACCOUNT) ||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNUMBER_DOGOVOR)||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_ABONENT )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFTYPE_ABONENT )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_ACTIVITY )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNUMBER_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATE_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATEIN_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFAPPTYPE )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAMETYPE_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNUMBER_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFSTATUS_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATE_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATEEND_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFCLOSE_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFADDRESS_TEL )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFCONDITION )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATE_DES_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_DES_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNOTE_DES_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFCOUNT_DES_APP )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDATE_DES_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNAME_DES_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFNOTE_DES_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFCOUNT_DES_ORD )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFZONA_A )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.APP_REG_DELTA )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.SYS_ZAK_DELTA )||'</Data></Cell>' ||'<Cell ss:StyleID="s23"><Data ss:Type="String">'||clr(L.DFDELETE )||'</Data></Cell>' ; PH2( '<Row>'||l_xml_body ||'</Row>' ) ; l_xml_body := ''; END LOOP ; описание процедуры procedure PH2( c clob ) is tmp varchar2(32000); pos number := 1; len number; begin len := dbms_lob.getlength(c); loop exit when pos > len; tmp := dbms_lob.substr(c, 32000, pos); htp.prn(tmp); htp.flush ; << ---------------------- тперь вставил здесь pos := pos + 32000; end loop; exception when no_data_found then -- htp.p('данных не найдено'); null; end; процедура clr - второстепенный характер - выкидывает из содержимого полей \/ <> после того как вставил здесь ( см выше ) стала присылать "недорисованный файл" так вот когда записей мало - порядка 10 -30 тыс - всё хорошо, но вот когда их > 50 тут и начинаются грабли ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 14:24 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
А вы можете сначала смастерить весь xml, в одном клоб файле, а потом вывести этот clob. Тем самым вы будете вызывать функцию PH2, один раз, а не 100 тысяч раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 14:41 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
В файле OS где стоит сервер ? Или в поле ( типа CLOB ) таблицы ? Первое не возможно - нету доступа, а вот второе - буду очень долго думать, да и где гарантия что делая PRN из поля этой таблицы всё прокатит гладко :( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 14:46 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Я к сожалению не понимаю в какой момент у Вас формируется этот xml. Посмотрите как долго он формируется, если это занимает часы, или минут 20-30, то конечно это ужасно и тут надо думать, как бы сделать это быстрее, особенно, если в этот момент клиент ждет ответа от сервера. Если же clob формируется моментально( я сейчас имею ввиду формирование не в таблице, а в процедуре, в поле типа CLOB, то вызовите процедуру PH2 один раз, для этой переменой.) Если вам одной переменной типа CLOB не хватает, то есть результат больше 4гб (монстр-файл с текстовыми данными), то сделайте тип данных as table of clob, хотя я все же не представляю для себя зачем это все вываливать пользователю в таких размерах. Повторюсь 4гб символов я вываливал на страницу, все работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 15:02 |
|
Передача большого XML -выскакивает 404 ошибка
|
|||
---|---|---|---|
#18+
Желание клиента - получить всё, а именно , есть таблица , необходимо вернуть её содержимое в формате XML, прилепить к ффйлу расширение XLS, что бы потом смотреть всё это Excel ем , я это делаю через HTP.PRN - когда сервер возвращает все строки , IE спрашивает сохранить файл или открыть, собственно всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 15:18 |
|
|
start [/forum/topic.php?fid=50&msg=37407948&tid=1876419]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 133ms |
0 / 0 |