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

Forms Oracle Discussion :

Une erreur ORA-06502 étrange


Sujet :

Forms Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut Une erreur ORA-06502 étrange
    Bonjour à tous.

    Il y a peu, un de mes programmes a généré une requête SQL de plus de 4000 caractères. Le champ de la base de données stockant cette requête étant en varchar2, impossible de monter plus haut.

    A l'heure actuelle mon patron est réticent à passer en long ou clob avant de faire des tests, donc on a dû rester là dessus et bloquer les requêtes de plus de 4000 caractères.

    J'ai donc passé tous les champs susceptibles du programme à 4000 caractères dans forms. Ainsi qu'un champ dans une des tables qui était à 1600 et que j'ai monté à 4000.

    Cependant voila, au tout début d'une de mes fonctions le programme appelle un curseur sur cette table.

    ORA - 6502 est déclenché pile sur l'ouverture du curseur. J'ai donc enlevé ce champ de ma requête, et le problème n'apparait plus ... Une idée du pourquoi ?

    Je vous remercie par avance.

    EDIT : le client chez qui j'ai ce problème a deux bases. Une base de test et une base de production. L'erreur n'apparait que sur la base de production, qui est rigoureusement identique à la base de test (je viens de vérifier au cas où ...)

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Difficile de répondre vu le peu d'information. Je me souviens d'avoir eu ce genre de problème car le char set était en UTF8 et les minuscules accentuées, par exemple prenaient plus de 1 caractère dans la chaine.
    l'utilisation de CLOB ou NCLOB serait approprié dans votre cas.
    C'est facile à tester et à valider.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Je viens de faire quelques recherches par rapport à votre réponse.

    La taille du champ ici ne change rien, enfin je pense. Le champ qui pose problème fait 1060 caractères sur la commande que j'utilise pour mes tests.

    C'était par rapport à une autre commande que j'ai dû faire ce changement à 4000.

    Je passerais en clob ou en long quand j'aurais réussi à motiver mon patron ^^

    Vraiment bizarre cette histoire ...

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Je ne sais pas si ca a un rapport mais j'ai souvent des erreurs 6502 dans des forms (6i) que je résous en général en faisant "Compile all" du module.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Ha oui, j'avais oublié de préciser que j'étais sous forms 9i et la base de données en 10g.

    J'ai essayé de tout recompiler, et directement chez le client (pour une fois qu'il y a forms sur leur serveur ..) mais sans succès. Toujours cette même erreur.

    Ce que je n'explique pas, c'est pourquoi après une modification de la taille du champ dans forms et sur la base de données, l'écran ayant été recompilé, on a une erreur 6502. Surtout que là, les données font 1060 caractères, soit moins que la taille de base avant mes changements ..

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Faut faire des tests pour être sur de l'endroit où ça plante, rajouter des traces, etc..

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Ayant mis un message avant et après mon fetch, je peux certifier que c'est sûr le fetch, puisque le message après ne s'affichait pas.

    Cependant la recompilation de l'écran, comme suggéré par Garuda, ne fonctionnait pas. Toutefois, cet écran est lié avec un autre, et tout un tas de package en SQL dynamique où je n'y comprends pas absolument rien (celui qui a fait ce programme à la base était un crac par rapport à moi il faut croire), donc j'ai eu l'idée de tenter de recompiler l'autre.

    J'ai aussi fait une recherche des objets invalides de la base de données. Un package appelé par ce programme avait un problème.

    Maintenant tout fonctionne.

    Donc recompilation des deux écrans ou du package .. un des deux ou les deux étaient la solution. Merci à vous de m'avoir orienté vers la solution.

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

Discussions similaires

  1. erreur ORA-06502 avec UTL_FILE
    Par leftyy dans le forum PL/SQL
    Réponses: 1
    Dernier message: 03/11/2010, 17h14
  2. Erreur ORA-06502 à résoudre
    Par fabpan dans le forum PL/SQL
    Réponses: 6
    Dernier message: 07/07/2009, 14h44
  3. Développement PL-SQL : Erreur ORA-06502
    Par sperronn dans le forum PL/SQL
    Réponses: 4
    Dernier message: 04/09/2008, 14h15
  4. erreur ora-06502 dans procédure stockée
    Par zorino dans le forum SQL
    Réponses: 8
    Dernier message: 17/04/2007, 18h53
  5. [Oracle 10g] Comment résoudre une erreur ORA-3000
    Par DoRiane dans le forum Oracle
    Réponses: 3
    Dernier message: 10/04/2006, 09h44

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