2
CREATE OR replace PROCEDURE Hello_world2
IS
BEGIN
    HTP.htmlopen;
    HTP.headopen;
    HTP.Title ('You knew it was coming...');
    HTP.headclose;
    HTP.comment ('This phrase is in every computer book.');
    HTP.Bodyopen (cattributes => 'body bgcolor=blue');
    HTP.Print ('And here it is .... Hello, World!');
    HTP.bodyclose;
    HTP.htmlclose;
END; 

これをHTMLファイルに出力するにはどうすればよいですか?私は以下に示すように試しました:

spool report.htm
exec hello_world2;
spool off
exit

しかし、以下に示すようなエラーが発生します。

    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.OWA_UTIL", line 356
    ORA-06512: at "SYS.HTP", line 1368
    ORA-06512: at "SYS.HTP", line 1443
    ORA-06512: at "SYS.HTP", line 1735
    ORA-06512: at "SYS.HTP", line 72
    ORA-06512: at "T416493.HELLO_WORLD2", line 4
    ORA-06512: at line 1

誰かがこれで私を助けることができますか

4

5 に答える 5

4

通常はowa_util.showpage、コンテンツをスプールするために呼び出します。ダンは、OracleOWA_UTILの使用法の概要を説明しています。これには面白いことがあります。sqlplus から実行する必要がありますが、Webブラウザを使用してmod_plsqlから呼び出されることを期待しています。

本当に静的なWebページのみを生成したい場合は、単純な古いdbms_outputを使用してそれを行うこともできます。それ以外の場合は、 Oracle Apexを検討する方が賢明かもしれません。あるいは、OracleApexの非常に優れた有能な代替手段であるFormspiderを検討する方が賢明かもしれません。

于 2012-08-07T09:02:18.197 に答える
1

ORA-06512:「SYS.OWA_UTIL」の356行目

そこに何があるのか​​見ようとしましたか?:-)その行に for i in 1..owa.num_cgi_vars あるので、cgi以外の環境でcgi対応コードを実行しようとしています。owa.num_cgi_vars変数がNULLです。

1..nullループnullでiを開始します。ループの終了; 終わり;

同じORA-06512が得られます。

于 2012-12-17T01:12:48.870 に答える
0

owa.init_cgi_envを使用してCGIを初期化する必要があります

http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:347617533333を参照してください

それは他のすべてが失敗したところで私のために働いた。

于 2013-01-16T16:37:08.500 に答える
0

私も同じ問題を抱えています。私は別のお父さんのプロフィールを挿入しました、そしてそれは魅力のように働きました:)どういうわけか古いお父さんのプロフィールは腐りました。

--xdbadminまたはsysとして(mpl_userはもちろんパッケージが存在するスキーマです):exec dbms_epg.create_dad('new_dad'、'/ my_db / *'); exec dbms_epg.set_dad_attribute('new_dad'、'database-username'、'UUSSEERR'); --大文字のユーザー名は、dbms_epgでuusseerrに実行を許可します。

--ユーザーとして(uusseerr):exec dbms_epg.authorize_dad('new_dad');

于 2014-01-23T20:30:27.097 に答える
0

以下のコードは、ストアドプロシージャを使用して形成されたhtmlページを印刷します。

    set serveroutput on;
    declare
        vNames  owa.vc_arr;
        vValues owa.vc_arr;
    begin
        htp.init;
        vNames(1) := 'REQUEST_PROTOCOL';
        vValues(1)  := 'HTTP';

        owa.init_cgi_env(
        num_params => 1,
        param_name => vNames,
        param_val  => vValues );

        test_package.proc_call; --procedure where html pages are formed using htp.p
        owa_util.showpage;
    end;
    /
于 2019-09-09T13:00:12.313 に答える