powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Регионы
25 сообщений из 44, страница 1 из 2
Регионы
    #36451034
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!!!

У меня такой вопросик. Есть регион и есть таблица. в которой есть поле типа БЛОБ. В нем храниться хтмл-код, который становится источником для региона. Как мне поменять этот источник, если требуется использовать другую запись?

Пыталась так, но увы...

Код: plaintext
1.
2.
3.
4.
5.
6.
DECLARE
temp VARCHAR2( 2500 );
BEGIN

SELECT BDATA INTO temp FROM HTM_D WHERE ID= 82 ;
:report:=tmp;
END;

Регион называется report. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Регионы
    #36451117
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге пришла к такому коду:

Код: plaintext
1.
2.
3.
4.
5.
DECLARE
temp VARCHAR2( 25000 );
BEGIN
SELECT CDATA INTO temp FROM htm_d where id= 82 ;
htp.p(temp);
END;

Однако он все также не заполняет регион....
...
Рейтинг: 0 / 0
Регионы
    #36451163
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Katerin,

100% связано с порядком отображения элементов при загрузке. Рекомендую поэкспериментировать с "Process Point", и, не забыть доложить о результатах...
...
Рейтинг: 0 / 0
Регионы
    #36451218
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dvksqlruKaterin,

100% связано с порядком отображения элементов при загрузке. Рекомендую поэкспериментировать с "Process Point", и, не забыть доложить о результатах...

:)

Данные-то я извлекла. Через htp.p смотрятся. а как "загнать" их в регион?
...
Рейтинг: 0 / 0
Регионы
    #36451317
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KaterinУ меня такой вопросик. Есть регион и есть таблица. в которой есть поле типа БЛОБ .

Код: plaintext
1.
2.
3.
4.
DECLARE
temp VARCHAR2( 2500 );
BEGIN
  SELECT BDATA INTO temp FROM HTM_D WHERE ID= 82 ;
...
KaterinВ итоге пришла к такому коду:

Код: plaintext
1.
DECLARE
temp VARCHAR2( 25000 );


Так BLOB или VARCHAR2, и какого размера?

PS: Гляньте в сторону региона с типом PL/SQL Dynamic Content.
...
Рейтинг: 0 / 0
Регионы
    #36451347
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я и пытаюсь указать источник для региона с динамическим контентом.
А в итоге, незнаю как уже полученные данные назначить в качестве его источника

Код: plaintext
1.
2.
3.
4.
5.
DECLARE
temp clob;
BEGIN
SELECT CDATA into temp FROM HTM_D where id= 121 ;
--Данные получены в темп, но они не отображаются в регионе
END;

Регион - PL|SQL anonim
...
Рейтинг: 0 / 0
Регионы
    #36451366
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin, и не отобразятся, пока вы не преобразуете clob в строку и не сделаете htp.p(строка). Так как размер строки ограничен, то правильно будет в цикле считывать подстроки из clob в буферную строку и и вот эту строку выводить.
...
Рейтинг: 0 / 0
Регионы
    #36451436
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin,

Ещё раз: у Вас какого типа поле таблицы: B LOB, C LOB, VARCHAR2? Что в этом поле лежит: HTML, картинка, просто текст?
...
Рейтинг: 0 / 0
Регионы
    #36451469
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerKaterin,

Ещё раз: у Вас какого типа поле таблицы: B LOB, C LOB, VARCHAR2? Что в этом поле лежит: HTML, картинка, просто текст?

хтмл код с clob

он успешно передается в temp, выводится на страницу через htp.p, но никак не хочет отображаться в рамках региона
...
Рейтинг: 0 / 0
Регионы
    #36451534
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerinвыводится на страницу через htp.p, но никак не хочет отображаться в рамках региона

Что-то не вяжется. Если на страницу выводится, то какие проблемы? Сделайте пример на apex.oracle.com.
...
Рейтинг: 0 / 0
Регионы
    #36451546
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerKaterinвыводится на страницу через htp.p, но никак не хочет отображаться в рамках региона

Что-то не вяжется. Если на страницу выводится, то какие проблемы? Сделайте пример на apex.oracle.com.

:()
Так мне необходимо вывести в регион, а не на саму страницу
...
Рейтинг: 0 / 0
Регионы
    #36451668
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin,

Вам нужно:
0. Создать регион типа PL/SQL Dynamic Content.
1. В его Source вписать PL/SQL-код, который будет выбирать CLOB-значение из таблицы и по частям, используя цикл, DBMS_LOB и HTP.P, выводить это значение.

Вот примитивный пример .
...
Рейтинг: 0 / 0
Регионы
    #36451906
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

кажется поняла Вас. Правда кода в примере не увидела, но получилось

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DECLARE
temp clob;
BEGIN

FOR c1 in (SELECT CDATA into temp FROM HTM_D)

LOOP

    htp.p('11');
    htp.p(temp);
    htp.p('11');

END LOOP;

END;

В таком виде не выводится Точнее выводится все, кроме самого силоба
...
Рейтинг: 0 / 0
Регионы
    #36451932
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin,

ну это Вы уже саму себя перехитрили. Либо пользуйтесь курсорной переменной с1, либо (если на самом деле цикла нет) выбирайте непосредственно в temp и используйте её.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BEGIN

  FOR c1 in (SELECT CDATA FROM HTM_D)
  LOOP

    htp.p('11');
    htp.p(c1.CDATA);
    htp.p('11');

  END LOOP;

END;

Или

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  temp clob;
BEGIN

  SELECT CDATA into temp FROM HTM_D;

  htp.p('11');
  htp.p(temp);
  htp.p('11');
exception
  when no_data_found then
    htp.p('Данных нет');
END;
...
Рейтинг: 0 / 0
Регионы
    #36451988
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerKaterin,

ну это Вы уже саму себя перехитрили.

Спасибо за комплимент :)

В итоге

Простая процедура без указания id

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  temp clob;
BEGIN

  SELECT CDATA into temp FROM HTM_D;

  htp.p('11');
  htp.p(temp);
  htp.p('11');
exception
when no_data_found then
    htp.p('Данных нет');
END;

выдает: ORA-01422: Точная выборка возвращает количество строк больше запрошенного

А если указываешь id

Код: plaintext
...FROM HTM_D where id= 121 

то данные выводятся на саму страницу, а не в регион

В общем, проблематично одну отдельную запись вывести в регион, а казалось бы такая необходимая процедура...
...
Рейтинг: 0 / 0
Регионы
    #36452006
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin,

давайте по шагам. Вам нужно вывести CLOB из одной записи или из всей таблицы?
...
Рейтинг: 0 / 0
Регионы
    #36452015
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerKaterin,

давайте по шагам. Вам нужно вывести CLOB из одной записи или из всей таблицы?

Из одной конкретной записи по id, соответственно хтмл-код - это содержимое поля этой записи типа clob
...
Рейтинг: 0 / 0
Регионы
    #36452079
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот нашла какой-то код,изменила его

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE
    fil BFILE;
    pos INTEGER:=  2147483647 ;
    pattern RAW;
BEGIN
SELECT CDATA INTO fil FROM HTM_D WHERE ID = 121 ; 
dbms_lob.fileopen(fil, dbms_lob.file_readonly); 
pattern := dbms_lob.substr(fil,  255 , pos); 
dbms_lob.fileclose(fil); 
END; 

Но :(

ORA-06550: Строка 5, столбец 13: PLS-00215: Ограничение длины строки символов должно быть в диапазоне (1 .. 32767) ORA-06550: Строка 7, столбец 8: PL/SQL: ORA-00932: несовместимые типы данных: ожидается NUMBER, получено CLOB ORA-06550: Строка 7, столбец 1: PL/SQL: SQL Statement ignored

Если что, нашла здесь: http://vladweb.narod.ru/help/oracle_lob.htm
...
Рейтинг: 0 / 0
Регионы
    #36452277
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin, что-то вы здесь все напутали, делаете select в дескриптор файла. Ведь правильный был подход.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
declare 
  c clob;
  tmp varchar2( 32767 );
  pos number :=  1 ;
  len number;
begin
  select bdata into c from htm_d where id= 82 ;
  len := dbms_lob.getlength(c); 
  -- а вот здесь задача выдачи содержимого clob через htp.p
  loop 
    exit when pos > len;
    tmp := dbms_lob.substr(c,  32767 , pos);
    htp.p(tmp);
    pos := pos +  32767 ;
  end loop;
exception when no_data_found then
  htp.p('данных не найдено');
end;

Как-то так. Правда, этот код не проверял.
...
Рейтинг: 0 / 0
Регионы
    #36452304
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%(

По прежнему выводит мимо региона, просто на страницу... правда теперь еще и кодировка cyr слетела...
...
Рейтинг: 0 / 0
Регионы
    #36452326
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katerin, нужен пример html из вашего clob. Дело, скорее всего, именно в нём.
...
Рейтинг: 0 / 0
Регионы
    #36452356
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidKaterin, нужен пример html из вашего clob. Дело, скорее всего, именно в нём.

CDATA
<html>
<body dir=LTR bgcolor="#ffffff">
<!-- Created by Oracle Reports -->

<div style="position: absolute; top:0pt;left:1pt;">

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
</div>
<style>#f1{font:bold 10pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:4pt;left:36pt" id=f1>ÏðîÊîíò</span>
<style>#f2{font:8pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:4pt;left:570pt" id=f2> 19 - 01 - 10   08 : 33 </span>
<style>#f3{font:italic 9pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:12pt;left:345pt" id=f3>ÎÀÎ "ÑÏá ÊÏÊ"</span>
<style>#f1a2a661{color:# 000000 ;}</style>
<style>#f2a2a661{color:# 000000 ;}</style>
<style>#f3a2a661{color:# 000000 ;}</style>
<div style="position:absolute;top:2pt;left:661pt" id=f2>Ñòð. <span id=f1a2a661> 1 </span><span id=f2a2a661> èç </span><span id=f3a2a661> 1 </span></div>
<style>#f4{font:11pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:26pt;left:364pt" id=f4>ÊÄÌ 1 </span>
<style>#f5{font:bold 11pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:44pt;left:279pt" id=f5>ÂÛÐÀÁÎÒÊÀ ÊÀÐÒÎÍÀ ÏÎ ÌÀÐÊÀÌ </span>
<span style="position:absolute;top:62pt;left:237pt" id=f5>çà ïåðèîä ñ</span>
<span style="position:absolute;top:62pt;left:309pt" id=f5>********************</span>
<span style="position:absolute;top:62pt;left:403pt" id=f5>ïî</span>
<span style="position:absolute;top:62pt;left:421pt" id=f5> 11 - 01 - 10   23 : 59 : 59 </span>
<div style="position:absolute;top:83.7pt;left:36.0pt;width:902.6;height:54.4;padding-top:46.8;font:0pt Arial;border-width:1.4; border-style:solid;border-color:#000000;"><table></table></div>
<style>#f6{font:9pt "Arial";color:#00007f}</style>
<span style="position:absolute;top:83pt;left:36pt" id=f6> Âèä êàðòîíà   </span>
<div style="position:absolute;top:83.7pt;left:143.1pt;width:252.8;height:20.7;padding-top:13.0;font:0pt Arial;border-width:1.4; border-style:solid;border-color:#000000;"><table></table></div>
<style>#f7{font:bold 9pt "Arial";color:# 000000 }</style>
<span style="position:absolute;top:83pt;left: 22 

И Вы знаете, это конечно смешно (если бы не так горько), но код нон-апексоида выводит отчет дважды, прчем, похоже, что первый в хедере страницы авторизации :)
...
Рейтинг: 0 / 0
Регионы
    #36452422
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите

автор<html>
<body dir=LTR bgcolor="#ffffff">
<!-- Created by Oracle Reports -->
<div style="position: absolute; top:0pt;left:1pt;">
</div>
<style>#f1{font:bold 10pt "Arial";color:#000000}</style>
<span style="position:absolute;top:4pt;left:36pt" id=f1>ÏðîÊîíò</span>
<style>#f2{font:8pt "Arial";color:#000000}</style>
<span style="position:absolute;top:4pt;left:570pt" id=f2>19-01-10 08:33</span>
<style>#f3{font:italic 9pt "Arial";color:#000000}</style>
<span style="position:absolute;top:12pt;left:345pt" id=f3>ÎÀÎ "ÑÏá ÊÏÊ"</span>
<style>#f1a2a661{color:#000000;}</style>
<style>#f2a2a661{color:#000000;}</style>
<style>#f3a2a661{color:#000000;}</style>
<div style="position:absolute;top:2pt;left:661pt" id=f2>Ñòð. <span id=f1a2a661>1</span><span id=f2a2a661> èç </span><span id=f3a2a661>1</span></div>
<style>#f4{font:11pt "Arial";color:#000000}</style>
<span style="position:absolute;top:26pt;left:364pt" id=f4>ÊÄÌ1</span>
<style>#f5{font:bold 11pt "Arial";color:#000000}</style>
<span style="position:absolute;top:44pt;left:279pt" id=f5>ÂÛÐÀÁÎÒÊÀ ÊÀÐÒÎÍÀ ÏÎ ÌÀÐÊÀÌ </span>
<span style="position:absolute;top:62pt;left:237pt" id=f5>çà ïåðèîä ñ</span>
<span style="position:absolute;top:62pt;left:309pt" id=f5>********************</span>
<span style="position:absolute;top:62pt;left:403pt" id=f5>ïî</span>
<span style="position:absolute;top:62pt;left:421pt" id=f5>11-01-10 23:59:59</span>
<div style="position:absolute;top:83.7pt;left:36.0pt;width:902.6;height:54.4;padding-top:46.8;font:0pt Arial;border-width:1.4; border-style:solid;border-color:#000000;"><table></table></div>
<style>#f6{font:9pt "Arial";color:#00007f}</style>
<span style="position:absolute;top:83pt;left:36pt" id=f6> Âèä êàðòîíà </span>
<div style="position:absolute;top:83.7pt;left:143.1pt;width:252.8;height:20.7;padding-top:13.0;font:0pt Arial;border-width:1.4; border-style:solid;border-color:#000000;"><table></table></div>
<style>#f7{font:bold 9pt "Arial";color:#000000}</style>
<span style="position:absolute;top:83pt;left:22

А двойное появление было моей виной
...
Рейтинг: 0 / 0
Регионы
    #36452505
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KaterinПростите

Код: plaintext
1.
2.
<html>
<body dir=LTR bgcolor="#ffffff">
...



И как теги, не настораживают Вас? Или Вы HTML тоже изучали по мере надобности? :)
...
Рейтинг: 0 / 0
Регионы
    #36452520
Katerin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerKaterinПростите

Код: plaintext
1.
2.
<html>
<body dir=LTR bgcolor="#ffffff">
...



И как теги, не настораживают Вас? Или Вы HTML тоже изучали по мере надобности? :)

Так это все из-за них? Просто их формирует генератор, а я внимание не обратила.
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Регионы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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