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

PL/SQL Oracle Discussion :

Taille insuffisante pour varchar2 retourné par une fonction


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 43
    Points
    43
    Par défaut Taille insuffisante pour varchar2 retourné par une fonction
    Bonjour,

    J'ai fait un petit programme qui retourne un varchar2 que j'ai déclaré comme tel:
    Lorsque j'execute cette fonction "toute seule", c'est à dire que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select fonction(parametres) from dual
    il n'y aucun problème.
    Par contre, quand cette fonction est appelée par un autre programme ca ne marche plus,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine_exec_imm := 'select a, b, '||fonction(params)||' from machin';
    DBMS_OUTPUT.PUT_LINE (chaine_exec_imm);
    et tout ce que j'ai comme message c'est un laconique
    begin dbms_output.get_line(:ln,:st); end;
    Error at line 4
    PL/SQL procedure successfully completed.
    En fait ce que j'essaye de faire c'est construire une chaine de charactere que je vais utiliser plus tard dans execute immediate.

    En bidouillant un peu je me suis rendu compte que le probleme vient de la taille de la chaine de charactere retournée par Fonction. En effet, si fonction retourne simplement 'toto', ca marche! Si elle retourne un 'totototototototot....' suffisament long, eh ben ca marche pu!
    Evidemment, chaine_exec_imm est déclarée avec une taille suffisament grande.
    NB:
    Oracle client (sur mon poste): 8.0.6
    Oracle Server : 10.2.0.1

  2. #2
    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
    dbms_output est limité à 255 caractères jusqu'à la 9i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BEGIN
    dbms_output.put_line(LPAD('k', 256, 'j'));
    END;
     
    ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
    ORA-06512: at "SYS.DBMS_OUTPUT", line 35
    ORA-06512: at "SYS.DBMS_OUTPUT", line 133
    ORA-06512: at line 2
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par McM Voir le message
    dbms_output est limité à 255 caractères jusqu'à la 9i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BEGIN
    dbms_output.put_line(LPAD('k', 256, 'j'));
    END;
     
    ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
    ORA-06512: at "SYS.DBMS_OUTPUT", line 35
    ORA-06512: at "SYS.DBMS_OUTPUT", line 133
    ORA-06512: at line 2
    Donc la version client sur mon PC fait goulot d'étranglement ...?
    Merci pour ta réponse!

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

Discussions similaires

  1. Chaîne retournée par une fonction et encodage
    Par dj-julio dans le forum Langage
    Réponses: 4
    Dernier message: 26/03/2008, 22h36
  2. Réponses: 2
    Dernier message: 24/12/2007, 09h53
  3. Réponses: 4
    Dernier message: 07/04/2007, 20h02
  4. valeur retournée par une fonction
    Par Biosox dans le forum C
    Réponses: 13
    Dernier message: 19/01/2007, 23h17
  5. Réponses: 11
    Dernier message: 31/10/2005, 17h59

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