Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Генерация HTML файла.  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
выполняю пример из документации ORACLE

BEGIN
    HTP.HTMLOPEN;           -- generates <HTML>
    HTP.HEADOPEN;           -- generates <HEAD>
    HTP.TITLE('Hello');     -- generates <TITLE>Hello</TITLE>
    HTP.HEADCLOSE;          -- generates </HEAD>
    HTP.BODYOPEN;           -- generates <BODY>
    HTP.HEADER(1, 'Hello'); -- generates <H1>Hello</H1>
    HTP.BODYCLOSE;          -- generates </BODY>
    HTP.HTMLCLOSE;          -- generates </HTML>
END;
/
получаю ошибку
[1]: (Error): ORA-06502: PL/SQL: numeric or value error ORA-06512: at "SYS.OWA_UTIL", line 354 ORA-06512: at "SYS.HTP", line 1362 ORA-06512: at "SYS.HTP", line 1437 ORA-06512: at "SYS.HTP", line 1729 ORA-06512: at "SYS.HTP", line 72 ORA-06512: at line 2

Что я делаю не так ?
22 май 08, 17:45    [5702256]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
Ты чайнег
Guest
declare
22 май 08, 17:52    [5702325]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
DECLARE тут не нужен - у меня же нет переменных в этом анонимном блоке.
22 май 08, 17:53    [5702336]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
ты чайнег
Guest
ну тебе виднее
22 май 08, 17:54    [5702349]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
ГостЪ
Guest
SQL> declare
  2    param_name owa.vc_arr;
  3    param_val  owa.vc_arr;  
  4  begin  
  5    param_name(1) := 'GATEWAY_IVERSION';
  6    param_val(1) := '125';
  7    owa.init_cgi_env(1, param_name, param_val);
  8  end; 
  9  /

PL/SQL procedure successfully completed.

SQL> BEGIN
  2      HTP.HTMLOPEN;           -- generates <HTML>
  3      HTP.HEADOPEN;           -- generates <HEAD>
  4      HTP.TITLE('Hello');     -- generates <TITLE>Hello</TITLE>
  5      HTP.HEADCLOSE;          -- generates </HEAD>
  6      HTP.BODYOPEN;           -- generates <BODY>
  7      HTP.HEADER(1, 'Hello'); -- generates <H1>Hello</H1>
  8      HTP.BODYCLOSE;          -- generates </BODY>
  9      HTP.HTMLCLOSE;          -- generates </HTML>
 10  END;
 11  /

PL/SQL procedure successfully completed.

SQL> 
22 май 08, 20:38    [5703072]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Andrei Fomichev
Что я делаю не так ?

Судя по всему - запускаешь это в SQL*Plus.

Либо используй тулзы, который понимают такой прикол (PL/SQL Developer, SQL Navigator и пр.)
Либо настраивай Oracle HTTP Server и переводи свой код в хранимую процедуру.
22 май 08, 22:07    [5703298]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
ГостЪ, спасибо, такой код выполняется без ошибок.

Вообще моя задача - создать HTML файл и записать его во временную таблицу, чтобы на клиенте вытащить его с сервера из этой таблицы и записать на диск. HTTP сервер я не использую.

В свете этого - что именно инициализирует этот фрагмент ?
SQL> declare
  2    param_name owa.vc_arr;
  3    param_val  owa.vc_arr;  
  4  begin  
  5    param_name(1) := 'GATEWAY_IVERSION';
  6    param_val(1) := '125';
  7    owa.init_cgi_env(1, param_name, param_val);
  8  end; 
  9  /
23 май 08, 10:39    [5704416]     Ответить | Цитировать Сообщить модератору
 Re: Генерация HTML файла.  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Непонятно, зачем тогда вам вообще этот HTP пакет нужен ...
Ну и собирайте ваш HTML код в VARCHAR переменную, которую потом сохраняйте в CLOB поле.
Если хочется структурировать код, то попробуйте пакет HTF.
DECLARE s VARCHAR2(250);
BEGIN
    s := HTF.HTMLOPEN;           -- generates <HTML>
    s := s || HTF.HEADOPEN;           -- generates <HEAD>
    s := s || HTF.TITLE('Hello');     -- generates <TITLE>Hello</TITLE>
    s := s || HTF.HEADCLOSE;          -- generates </HEAD>
    s := s || HTF.BODYOPEN;           -- generates <BODY>
    s := s || HTF.HEADER(1, 'Hello'); -- generates <H1>Hello</H1>
    s := s || HTF.BODYCLOSE;          -- generates </BODY>
    s := s || HTF.HTMLCLOSE;          -- generates </HTML>
    DBMS_OUTPUT.PUT_LINE(s);
END;
/
<HTML><HEAD><TITLE>Hello</TITLE></HEAD><BODY><H1>Hello</H1></BODY></HTML>

PL/SQL procedure successfully completed.

--
Per rectum ad astrum
23 май 08, 18:48    [5708826]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить