Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9 10 11   вперед  Ctrl      все
 Re: Передача письма с вложением. Готовое решение  [new]
K790
Member

Откуда:
Сообщений: 586
May12,

sry

v_message:=v_message||'<table style="border: solid 0px #cccccc"  cellspacing="0" cellpadding="0"><tr BGCOLOR=#000099>';
FOR I IN (select owner, object_name  from all_objects)
  LOOP
     v_message:=v_message||'<tr><td>'||i.owner||'</td><td>'||i.object_name ||'</td></tr>'||utl_tcp.CRLF;
  END LOOP;
v_message:=v_message||'</table></body></html>'||utl_tcp.CRLF;
16 окт 13, 16:21    [14981263]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
K790, спасибо. Так и делаю. Читаю отсюда. вот только кинуть на почту это хочется все-таки с использование mail_pkg.
16 окт 13, 16:48    [14981555]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
May12, кидай в свое удовольствие через:

 MAIL_PKG.SEND( mailto => 'A. Ivanov <a.ivanov@yourcomany.ru>, O.Petrov <o.petrov@yourcompany.ru>'
                  , subject => 'Test subject'
                  , message => v_your_table_with_CSS_and_HTML
                  , mailfrom => 'Oracle Notify <no-reply@yourcompany.ru>'
                  , mimetype => 'text/html'
                  , priority => 1
                  );


=))
17 окт 13, 16:45    [14986721]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
chameleon82
Member

Откуда: Russia, Новосибирск
Сообщений: 251
May12
chameleon82, без Вас не справлюсь. Помогите отправить таблицу
 select '<TD>'||'Помоги'||'</TD>' ||
          '<TD>'||'тупой'||'</TD>'||
          '<TD>'||'учиться!!!'||' </TD>'||
           chr(10)  as STR
      FROM DUAL CONNECT BY LEVEL < 5;


в теле письма? Молю...


Вот никак не могу понять, в чем проблема :)

DECLARE
 message CLOB;
BEGIN
 message := '
<HTML>
       <HEAD>
              <STYLE>
                     table td {color: red; font: 25px solid red;padding:15px}
              </STYLE>
       </HEAD>
       <BODY>
             <TABLE BORDER=1>
                 <TR><TH>Что</TH><TH>Кому</TH><TH>Что делать</TH></TR>';

FOR x IN (
select '<TR><TD>'||'Помоги'||'</TD>' ||
          '<TD>'||'тупой'||'</TD>'||
          '<TD>'||'учиться!!!'||' </TD></TR>'||
           chr(10)  as STR
      FROM DUAL CONNECT BY LEVEL < 5)
LOOP
 message := message || x.STR;
END LOOP;
 message := message || '
         </TABLE>
    </BODY>
</HTML>
';
 
   MAIL_PKG.SEND( mailto =>   'maya_vetrova@почта.ru'
                  , subject => 'Письмо с таблицей'
                  , message => message                  
                  , mailfrom =>'Уведомление <no-reply@yourcompany.ru>'
                  , mimetype =>'text/html'
                  );
 
END;          
18 окт 13, 09:26    [14995565]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
chameleon82
Member

Откуда: Russia, Новосибирск
Сообщений: 251
Кстати, Ваш запрос в PLSQL в Oracle9i выдаст одну строку вместо 4-ех, в версиях старше будет все норм. Это известная бага 9-го оракла при выборе произвольных данных из таблички DUAL. Будьте внимательны
18 окт 13, 09:34    [14995630]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 17354
Это бага не оракла, а инструмента
18 окт 13, 09:43    [14995690]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
chameleon82
Member

Откуда: Russia, Новосибирск
Сообщений: 251
andreiz
chameleon82,
интересно, у меня другая задача - читать письма с exchange 7, сохранять тело как "чистый" текст в CLOB, ну и как BLOB, сохрранять все аттачки как BLOB. делаю на яве в банке, больше всего трудностей с коонвертированием тела в "чистый" текст. у кого есть опыт поделитесь.
заранее спасибо.
всего.


Пока пакет может только с некоторыми ограничениями забирать почту с pop3, сейчас как раз работаю над получением почты через протоколы IMAP и MAPI (с последним работает exchange).
С конвертированием тела в текст в данном пакете особых проблем не наблюдалось, по крайней мере, с английским текстом проблем точно нет. Русский текст в моих тестах вполне декодируется, но я тестировал не на всех кодировках. Для приема почты с помощью mail_pkg попробуйте пересылать почту на pop3 ящик.
18 окт 13, 09:44    [14995704]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
mr Red
Member

Откуда:
Сообщений: 143
пакет вылетает при попытке отправить аттач из blob

ORA-06502: PL/SQL: : character string buffer too small ошибка числа или значения
ORA-06512: на "STAGE.MAIL_PKG", line 179
ORA-06512: на line 29

прочитал ветку, проставил все varchar(25) в varchar(500), не помогло
все равно вылетает там же.

что делать?
24 окт 13, 10:14    [15024387]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
mr Red
Member

Откуда:
Сообщений: 143
mr Red
пакет вылетает при попытке отправить аттач из blob

ORA-06502: PL/SQL: : character string buffer too small ошибка числа или значения
ORA-06512: на "STAGE.MAIL_PKG", line 179
ORA-06512: на line 29

прочитал ветку, проставил все varchar(25) в varchar(500), не помогло
все равно вылетает там же.

что делать?


все, вопрос снят
заменил практически все varchar(n) на varchar(500)
помогло
24 окт 13, 10:21    [15024422]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
oleggy
Member

Откуда:
Сообщений: 2
Всем привет.
Вопрос скорее всего к chameleon82 или может быть кто то другой знает.
Данный скрипт отправки почты возможно выполнить в SQL Plus ?
11 ноя 13, 11:20    [15107409]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
oleggy, это мой пятый совет в форуме (пытаюсь немного помочь -2-): вам нужно скомпилировать предложенный пакет и выполнять из него процедуры. инструмент (sql plus или что-то другое) не имеет значения. Однако с таким объемом кода, на мой взгляд, удобнее работать в Toad или pl/sql developer.
12 ноя 13, 10:29    [15113447]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
Друзья, подскажите пожалуйста как отправить почту на внешний домен? приходит вот такая "отбивка":

Не удалось выполнить доставку следующим получателям или группам:
maya_vetrova@othercompanydomain.com
Неверный формат адреса электронной почты. Допустимые адреса выглядят следующим образом: username@contoso.com. Проверьте адрес электронной почты получателя и повторите попытку отправки сообщения.

Диагностические сведения для администраторов:

Формирующий сервер: localhost.localdomain

maya_vetrova@othercompanydomain.com
#< #5.1.3 SMTP; 553 The sender must not be from a protected domain as the sender's IP is in the Inbound Mail Relay list.> #SMTP#

т.е. понятно что отправка, видимо, запрещена. Каким способом сделать отправку возможной?
12 ноя 13, 11:25    [15113756]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
chameleon82
Member

Откуда: Russia, Новосибирск
Сообщений: 251
May12
Друзья, подскажите пожалуйста как отправить почту на внешний домен? приходит вот такая "отбивка":

т.е. понятно что отправка, видимо, запрещена. Каким способом сделать отправку возможной?


Ну это Вам к администратору почтового сервера, сложно сказать, какие фильтры у него настроены. Попробуйте в адресе почты отправителя указать правильный почтовый домен (или существующую учетную запись).
12 ноя 13, 13:54    [15114994]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
chameleon82
Попробуйте в адресе почты отправителя указать правильный почтовый домен (или существующую учетную запись).

да, так и сделала и получила "отбивку". =)
12 ноя 13, 14:56    [15115637]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
PooH_2
Member

Откуда:
Сообщений: 268
Ну вам же пишут "Допустимые адреса выглядят следующим образом: username@contoso.com"
Это настройка вашего почтового сервера, он другую почту слать не хочет. Надо это ограничение изменить или отключить. Но к ораклу это уже не имеет никакого отношения.
12 ноя 13, 16:00    [15116204]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
l_kator
Member

Откуда: München
Сообщений: 535
chameleon82,
спасибо вам огромное!! Вы спасли мой мозг :)

У меня всего 2 вопроса:
Как подписаться на рассылку обновленной версии пакета?
Куда слать пиво(цветы/вино/шоколад/котлеты)?
4 дек 13, 16:56    [15240857]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
chameleon82, с наступающим и добра Вам.

Повторно наткнулась на проблему ограничения длины, в в этот раз, названия файла. Чтоб люди еще меньше мучились предлагаю заменить type attach_row на:
type attach_row is record ( dirname varchar2(30)
                           , filename  varchar2(256)
                           , name  varchar2(256)
                           , mimetype varchar2(30)
                           , blobloc blob
                           , clobloc clob
                           , attachtype varchar2(30)
                           , contentid varchar2(256)
                           , disposition varchar2(25) default 'attachment'
                           );
24 дек 13, 11:31    [15338184]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
-2-
Member

Откуда:
Сообщений: 12971
May12,

перекомпилируй с nls_length_semantic=char. и имей ввиду, что большинство файловых систем не поддерживают имена более 255 символов.
24 дек 13, 12:07    [15338499]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
chameleon82
Member

Откуда: Russia, Новосибирск
Сообщений: 251
l_kator
chameleon82,
спасибо вам огромное!! Вы спасли мой мозг :)

У меня всего 2 вопроса:
Как подписаться на рассылку обновленной версии пакета?
Куда слать пиво(цветы/вино/шоколад/котлеты)?


Пожалуйста ) Свежая версия пакета всегда на гитхабе

May12
chameleon82, с наступающим и добра Вам.

И Вас с наступающим ) Ваше замечание пофиксил ;)

И всем тоже счастливого Нового года! )
31 дек 13, 10:32    [15368106]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
Vadim Romanenko
Member

Откуда: Харьков, Украина
Сообщений: 1432
Привет всем!

Для того, чтоб не испытывать проблем, как у May12, я бы категорически предложил всем переменным типа varchar2 выдать размер с запасом. Например, в текущем варианте под папку отдается 30 символов. Люди, ну чем Вы думаете?? Под имя файла 256, под имя папки - 30 :) Да кто в Оракле трясется сегодня над каждым байтом??? Тем более в пакете, тем более, когда это имя и папка не хранится в БД? Сегодня ОЗУ считается гигабайтами, а не килобайтами!

Я бы рекомендовал под папку выделить 512 символов, под имя - ИМХО хватило бы 128, но пусть таки будет 256. Минимальным размером варчара советовал бы установить 64 символа, а не эти игры с 20-25-30. Потому что в связи с такой прижимистостью ПОСТОЯННО возникают различные артефакты. Вот например - недавно на Гитхабе оставлял отзыв, что из-за прижимистости были баги с отправкой писем начиная с октября (длина номера месяца переходила в двузначную величину). Ну и кому это надо??? Вылавливать такие баги...

С уважением, Вадим.
22 янв 14, 13:20    [15451890]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
Vadim Romanenko
Member

Откуда: Харьков, Украина
Сообщений: 1432
ПС: присоединяюсь к поздравлениям с Новым годом. Путь и поздновато, конечно :)
Желаю всем побольше творческих решений, и поменьше ковыряния в старом, особенно чужом ;)
22 янв 14, 13:22    [15451896]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
AntonG
Member

Откуда: Иркутск
Сообщений: 38
Доработал процедуру получения почты, теперь не падает и не виснет при больших входящих письмах
+ GET_MAIL

 PROCEDURE GET_MAIL(mail_id number,lines number default null) IS
  answer varchar2(32767);
  content_bufer varchar2(32767);
  cnt number;
  bytes number;
  status varchar2(25);
  message_body clob;
  hdr_flag boolean;
  hdr_entity varchar2(255);
  hdr_entity_value varchar2(32717);
  boundary varchar2(128);
  part_header_flag boolean:=false;
  any_boundary_found boolean:=false;
  any_boundary_found_close boolean:=false;
 BEGIN
       IF MAIL_PKG.protocol != MAIL_PKG.POP3 THEN
        RAISE_APPLICATION_ERROR(-20000,'This feauture is not realised yet in proto '||MAIL_PKG.protocol);
       END IF;

       CMD(c,'LIST '||mail_id,status,answer); -- get message size
       MAILBOX(mail_id).bytes:=to_number(trim(substr(answer,instr(answer,' '))));

       IF  MAILBOX(mail_id).bytes >= 1048576 THEN
           PDEBUG('BUG: Message '|| mail_id ||' over 1Mb, ' ||  MAILBOX(mail_id).bytes || ' bytes' ,mail_pkg.debug_errors);
       END IF;

       CMD(c,CASE WHEN lines is NULL THEN 'RETR '||mail_id ELSE 'TOP '||mail_id||' 10' END,status,answer); -- read message headers
       BEGIN
         hdr_entity:='';hdr_entity_value:='';
         hdr_flag := true;
         if lines<>0 or lines is null then
            MAILBOX(mail_id).message:='';
            MAILBOX(mail_id).attachments := t_attachments();
         end if;
         dbms_lob.createtemporary(lob_loc => MAILBOX(mail_id).message, cache => true, dur => dbms_lob.call);
         LOOP
             answer :=utl_tcp.get_line(c, TRUE);  -- read result
             EXIT WHEN answer = '.';
             IF answer IS NULL THEN hdr_flag := false; END IF;
             IF hdr_flag THEN
                 IF ascii(substr(answer,0,1)) NOT IN (9,32) THEN
                   hdr_entity := substr(answer,1,instr(answer,':')-1);
                   MAILBOX(mail_id).HDR(hdr_entity):='';
                   hdr_entity_value := substr(answer,instr(answer,':')+2);
                 ELSE
                   hdr_entity_value := substr(answer,2);
                 END IF;

                 PDEBUG('HDR:'|| answer);
                 MAILBOX(mail_id).HDR(hdr_entity):= MAILBOX(mail_id).HDR(hdr_entity)
                                                 || MIME_DECODE(hdr_entity_value);
                 IF hdr_entity = 'Content-Type' THEN
                   if instr(answer,'boundary="')>0 then
                      extract_value(boundary,answer,'boundary');
                   end if;
                 END IF;
             ELSE
                
                 any_boundary_found := false;
                 any_boundary_found_close := false;
                 IF MAILBOX(mail_id).attachments.count>0 THEN
                 FOR incls IN MAILBOX(mail_id).attachments.first .. MAILBOX(mail_id).attachments.last
                 LOOP
                   if answer = '--' || MAILBOX(mail_id).attachments(incls).boundary then
                     any_boundary_found := true;
                   end if;
                   if answer = '--' || MAILBOX(mail_id).attachments(incls).boundary || '--' then
                     any_boundary_found_close := true;
                   end if;
                 END LOOP;
                 END IF;
								 if length(answer)=0 and length(content_bufer)>0 then
                   DBMS_LOB.APPEND ( MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).content, content_bufer);
				         end if; 
                 if boundary is not null and
                    ( answer = '--' || boundary
                      or
                      any_boundary_found
                    )
                     then
                    part_header_flag:=true;
                    MAILBOX(mail_id).attachments.extend();
                    dbms_lob.createtemporary(lob_loc => MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).content, cache => true, dur => dbms_lob.call);
                 elsif boundary is not null and
                   (  answer = '--' || boundary || '--'
                     or
                     any_boundary_found_close
                   )
                     then
                       null;
                 elsif part_header_flag and answer is null then
                    part_header_flag:=false;
                 else
                    IF part_header_flag THEN
                       IF ascii(substr(answer,0,1)) NOT IN (9,32) THEN
                          hdr_entity := substr(answer,1,instr(answer,':')-1);
                          MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).HDR(hdr_entity):='';
                          hdr_entity_value := substr(answer,instr(answer,':')+2);
                       ELSE
                          hdr_entity_value := substr(answer,2);
                       END IF;
                       MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).HDR(hdr_entity):=
                              MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).HDR(hdr_entity)
                           || MIME_DECODE(hdr_entity_value);

                       IF hdr_entity = 'Content-Type' THEN
                          extract_value(MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).boundary,answer,'boundary');
                          extract_value(MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).charset,answer,'charset');
--                            PDEBUG(MAILBOX(mail_id).includes(MAILBOX(mail_id).includes.last).charset,mail_pkg.debug_messages);
                       ELSIF hdr_entity = 'Content-Transfer-Encoding' THEN
                            MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).ContentTransferEncoding := hdr_entity_value;
                       END IF;

                    ELSE

                       -- BUG: BIG messages is very slow and prc can get "[SYS/PERM] Fatal error: Lost connection to input stream"
                      -- IF MAILBOX(mail_id).bytes < 1048576 THEN
                         IF MAILBOX(mail_id).attachments.count>0 THEN
                            if length(answer)>0 then
                               if length(content_bufer||answer) >= 32767 then
                                 DBMS_LOB.APPEND ( MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).content, content_bufer);
                                 content_bufer := PARSE_LINE( answer
                                                             ,MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).ContentTransferEncoding
                                                             ,MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).charset);
                               else
                                 content_bufer := content_bufer||PARSE_LINE( answer
                                                                             ,MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).ContentTransferEncoding
                                                                             ,MAILBOX(mail_id).attachments(MAILBOX(mail_id).attachments.last).charset);
                               end if;  
                            end if;
                         ELSE
                            IF length(answer)>0 THEN
                              DBMS_LOB.APPEND (MAILBOX(mail_id).message,answer);
                            END IF;
                         END IF;
                      -- END IF;

                    END IF;
                    PDEBUG(CASE part_header_flag WHEN TRUE THEN 'H' ELSE 'B' END || '-BODY:'||answer);
                 end if;
             END IF;

         END LOOP;
       EXCEPTION
         WHEN OTHERS THEN
         PDEBUG('ERR: GET MESSAGE ' ||mail_id || ' ERROR ',mail_pkg.debug_errors);
         RAISE;
       END;
       IF MAILBOX(mail_id).HDR.EXISTS('From') THEN
          MAILBOX(mail_id).MailFrom := MAILBOX(mail_id).HDR('From');
       END IF;
       IF MAILBOX(mail_id).HDR.EXISTS('MailTo') THEN
          MAILBOX(mail_id).MailTo := MAILBOX(mail_id).HDR('To');
       END IF;
       IF MAILBOX(mail_id).HDR.EXISTS('Return-Path') THEN
          MAILBOX(mail_id).ReturnPath := MAILBOX(mail_id).HDR('Return-Path');
       END IF;
       IF MAILBOX(mail_id).HDR.EXISTS('Subject') THEN
          MAILBOX(mail_id).Subject := MAILBOX(mail_id).HDR('Subject');
       END IF;
       IF MAILBOX(mail_id).HDR.EXISTS('Date') THEN
          BEGIN
            MAILBOX(mail_id).MailDate := TO_TIMESTAMP_TZ(MAILBOX(mail_id).HDR('Date'),'Dy, DD Mon YYYY HH24:MI:SS TZHTZM','NLS_DATE_LANGUAGE = ''american''');
          EXCEPTION WHEN OTHERS THEN NULL; END;
       END IF;
 END;

31 янв 14, 08:52    [15498207]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
Возможен оффтоп.
Кто-нибудь пытался вставить, скажем, график роста своей зарплаты в рассылаемые письма?
какой процедурой (или на java) создать график, как его сохранить и вставить в письмо (вставка более менее понятна =) )?
6 фев 14, 10:54    [15526960]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
-2-
Member

Откуда:
Сообщений: 12971
with t as (
  select (level-1)/3.141526 x, sin((level-1)/3.141526) y from dual connect by level<=21
)
   , taxis as (
  select round(199*(0-min(x))/(max(x)-min(x))) x, round(99*(0-min(y))/(max(y)-min(y))) y from t
)
   , tscale as (
  select round(199*(x - min(x) over()) / (max(x) over() - min(x) over())) x, 99-round(99*(y - min(y) over()) / (max(y) over() - min(y) over())) y from t
)
select 0.0 r, '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="100">' svgline from dual union all
select 0.1, '<rect width="200" height="100" style="fill: grey; stroke: black;" />'  from dual union all
select 0.2, '<line x1="0" y1="'||y||'" x2="199" y2="'||y||'" style="stroke: blue;"/>
<line x1="'||x||'" y1="0" x2="'||x||'" y2="99" style="stroke: blue;"/>'  from taxis union all
select rownum, '<line x1="'||lag(x,1,x) over(order by x)||'" y1="'||lag(y,1,y) over(order by x)||'" x2="'||x||'" y2="'||y||'" style="stroke: red;"/>' 
from tscale union all
select null, '</svg>' from dual
order by 1 nulls last
;


К сообщению приложен файл (svg.svg - 1Kb) cкачать
6 фев 14, 11:54    [15527345]     Ответить | Цитировать Сообщить модератору
 Re: Передача письма с вложением. Готовое решение  [new]
Asmodeus
Member

Откуда: Минск
Сообщений: 521
-2-, замечательно!
З.Ы. Какое, однако, забавное "пи" используется. :-)
6 фев 14, 14:32    [15528768]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9 10 11   вперед  Ctrl      все
Все форумы / Oracle Ответить