0

我正在一个使用 PL/SQL 中的 htp 包的项目中工作。例如,如果我运行这个程序,网页会出现在哪里?如何查看生成的页面?

     CREATE OR REPLACE PROCEDURE hello AS
     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;

如果我运行:

     exec owa_util.showpage;

我收到以下错误:

     ERROR at line 1:
     ORA-06502: PL/SQL: numeric or value error
     ORA-06512: at "SYS.OWA_UTIL", line 356
     ORA-06512: at "SYS.HTP", line 665
     ORA-06512: at "SYS.HTP", line 759
     ORA-06512: at "SYS.HTP", line 1115
     ORA-06512: at "SYS.OWA_UTIL", line 347
     ORA-06512: at line 1
4

1 回答 1

2

我不知道你是否从 sqlplus 运行。您需要进行一些初始化。尝试这个:

set serveroutput on

 DECLARE
 param_val   owa.vc_arr;


 BEGIN
   param_val (1) := 1;
   owa.init_cgi_env (param_val);
    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>
  htp.showpage ();

 END;
 /

此输出的结果:

<HTML>
<HEAD>
<TITLE>Hello</TITLE>
</HEAD>
<BODY>
<H1>Hello</H1>
</BODY>
</HTML>

有关更多详细信息,请参阅 Oracle 论坛中的此链接

于 2013-04-17T01:04:47.647 回答