IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Utilisation du package htp et owa_util sous Sql*Plus


Sujet :

Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut Utilisation du package htp et owa_util sous Sql*Plus
    Hello
    Je veux programmer dans ma crontab des scripts sh/plsql qui me genereront des pages web que mes users pourront consulter. Pour info, il s'agira des "portal performance" scripts, pour stats de frequentation des pages.
    Je remarque un truc tres bizzare, c'est que sous sql*plus, la toute premiere fois que je fais appel a une procedure du package htp j'ai une erreur :
    -----------------
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.OWA_UTIL", line 325
    ORA-06512: at "SYS.HTP", line 1307
    ORA-06512: at "SYS.HTP", line 1382
    ORA-06512: at "SYS.HTP", line 1674
    ORA-06512: at "SYS.HTP", line 92
    ORA-06512: at line 1
    -----------------
    mais lorsque je la relance ensuite cela fonctionne parfaitement (je peux faire un test avec un simple BEGIN htp.htmlOpen; END; ).
    Chez Oracle ils m'ont dit que le package htp n'etait pas prévu pour ca, qu'il etait seulement invoquable via le serveur http, mais ce n'est pas mon besoin.
    Je pourrai ecrire du html en toutes lettres avec des dbms_output mais ca me gonfle de ne pas pouvoir utiliser ces procédures toutes pretes (avec un owa_util.showpage à la fin).

    Any help ?
    merci
    Loko

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    hmm.

    jevois pas d'autres solutions, car j'ai déja eu le meme pb donc le seul moyen serait d'utiliser utl_file

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Voila je pense que tu tombes sur ce probleme et voila comment Oracle préconise de faire

    Executing OWA Packages in SQLPLUS Throws ORA-06502/6512 Errors
    --------------------------------------------------------------
    Problem Description
    -------------------
    Executing some of the OWA pacakges in SQL*Plus throws Oracle errors the first time the procedure is called. For e.g.,

    SQL> exec owa_util.mime_header('text/html',true);
    BEGIN owa_util.mime_header('text/html',true); END;
    * ERROR at line 1: ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.OWA_UTIL", line 315
    ORA-06512: at "SYS.OWA_UTIL", line 355
    ORA-06512: at line 1

    Solution Description
    --------------------
    1. Put the following code in the login.sql
    DECLARE name_arr OWA.VC_ARR;
    value_arr OWA.VC_ARR;
    BEGIN
    OWA.INIT_CGI_ENV(0, NAME_ARR, VALUE_ARR);
    END;
    /
    2. Save the file.
    3. Exit from SQL*Plus.
    4. Log back into SQL*Plus.
    5. Now, execute the same package.

    Explanation
    -----------
    The reason why this some times doesn't work in SQLPLUS is because there are some package variables that need to be initialized before you attempt to execute a PL/SQL procedure which uses the OWA packages. This is handled correctly in the web environment (PL/SQL GateWay to access the procedure e.g., 10g/9iAS mod_plsql). Adding the code in the login.sql file initializes the neccessary variables at login time and hence the packages work straight away.

    WORKAROUND
    ----------
    After error stack thrown, re-execute the same procedure call.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut
    C'est bien ce qui me semblait (un bleme d'initialisation de variables d'env), et je confirme que cela corrige le probleme.

    Merci beaucoup, ca m'est d'un grand secours.
    Loko

  5. #5
    Futur Membre du Club
    Profil pro
    Concepteur
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Question du même type
    Salut tout le monde,

    Je pose ma question ici car il est question de sys.htp et vu que je dois développer une proc qui va générer à partir d'un tableau 2D une page HTML sous forme de tableau.

    En entrée j'ai genre ça :

    arbitres 54
    joueurs 25
    sélectionneur 456

    en résultat je dois avoir ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <table style="text-align: left; width: 10%;" border="1" cellpadding="0" cellspacing="0">
      <tbody>
        <tr>
          <td style="vertical-align: top;">arbitres<br>
          </td>
          <td style="vertical-align: top;">54</td>
        </tr>
        <tr>
          <td style="vertical-align: top;">joueurs</td>
          <td style="vertical-align: top;">25</td>
        </tr>
        <tr>
          <td style="vertical-align: top;">sélectionneur</td>
          <td style="vertical-align: top;">456</td>
        </tr>
      </tbody>
    </table>
    Alors soit je le fais avec utl_file soit je le fait avec le package htp, si celui ci permet de générer des fichiers dans un directory.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer et utiliser la date système du jour sous SQL
    Par fossolivier dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 02/07/2010, 11h09
  2. Réponses: 4
    Dernier message: 05/07/2007, 11h07
  3. Pb scripts sous SQL*PLUS
    Par danny91 dans le forum Oracle
    Réponses: 1
    Dernier message: 16/10/2006, 11h10
  4. Pb pour executer une procédure sous SQL PLUS
    Par rabddoul dans le forum Oracle
    Réponses: 4
    Dernier message: 21/10/2005, 15h40
  5. Réponses: 2
    Dernier message: 01/06/2004, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo