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

SQL Oracle Discussion :

probleme avec le type LONG ROW


Sujet :

SQL Oracle

  1. #1
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut probleme avec le type LONG ROW
    Bonjour;
    je travail sur une base orcle 10g.
    mon probleme est que j'ai une table avec un champ "MESSAGE" de type "LONG ROW", normalement j'insere avec succé mes données dans cette table (les données du champ MESSAGE sont invisibles ) , mais quand je veux extraire ces données on me renvois une erreur avec le code "ORA-01405".
    ma question est : est ce que les données des types LONG ROW sont invisible ? et pourquoi on me renvoi cette erreur

    NB: je travaille sur la meme base mais sous oracle 9i et le programme passe trés bien on me renvoyany aucune erreur

    merci de m'avoir aider, c'est urgent

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    je suppose que tu veux dire LONG RAW, non?

    ok, tu ne peux pas employer de fonction SQL avec un LONG. Donc il faut faire du plsql

    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
    19
    20
    21
    22
    23
     
    SQL> var v varchar2(40)
    SQL> set autop on
    SQL> create table t(x long raw);
     
    Table created.
     
    SQL> insert into t values(utl_raw.CAST_TO_RAW('abc123'));
     
    1 row created.
     
    SQL> select * from t;
    X
    -
    6
     
    SQL> exec select x into :v from t;:v:=utl_raw.cast_to_varchar2(:v)
     
    PL/SQL procedure successfully completed.
     
    V
    ------
    abc123

  3. #3
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut
    le probleme est quand le champ doit contenir une valeur trop longue

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    trop longue? En 9i, la limite du LONG RAW est de 2 Giga...

  5. #5
    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
    Le litteral de CAST_TO_RAW() étant probablement limité à 4000 octets....

    Pourquoi ne transformez-vous pas cette colonne en CLOB ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par SheikYerbouti
    Le litteral de CAST_TO_RAW() étant probablement limité à 4000 octets....

    Pourquoi ne transformez-vous pas cette colonne en CLOB ?
    oh, cast_to_raw n'était qu'un exemple... je ne sais pas où est le problème d'amigauss, il n'employe sans doute même pas UTL_RAW.

  7. #7
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut
    oui,
    vraiment comment ça se passe:
    depuis proC je fais un appel à une fonction en PL/SQL, cette derniere termine trés bien (d'aprés le resultat qu'elle renvoi) donc au niveau de PL/SQL tout se passe bien. mais quand on retourne au code proC on trouve que cette fonction a causé un erreure de typre ORA-01405,
    alors là je comprend rien, surtt que tout se passe trés bien dans un autre serveur avec oracle 9i.
    quand j'ai enlevé le paramatre de type "LONG RAW" de tout les appels ça c'est bien passé.
    donc c'est ce variable qui a causé l'erreur

  8. #8
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut
    non je n'utilise pas UTL_RAW

  9. #9
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Je pense qu'il faut nous montrer le code proc.

  10. #10
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il y a probablement une erreur dans le code PRO*C avec une valeur nulle retournée alors qu'il n'y a pas d'indicateur associé:


    ORA-01405 fetched column value is NULL

    Cause: The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you are running Oracle with DBMS=6, emulating version 6, in which case it is only a warning.

    Action: You may do any of the following:

    * Use the NVL function to convert the retrieved NULL to another value, such as zero or blank. This is the simplest solution.
    * Use an indicator to record the presence of the NULL. You probably should use this option when you want a specific action to be taken when a NULL arises.
    * Revise the cursor definition so that no columns possibly containing NULL values are retrieved.

  11. #11
    Membre du Club Avatar de amigauss
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 119
    Points : 54
    Points
    54
    Par défaut
    c'est bon, j'ai changé le type en BLOB etles probleme est resolu

    merci

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

Discussions similaires

  1. ORACLE9i Probleme avec le type LONG RAW
    Par hachrmh dans le forum SQL
    Réponses: 0
    Dernier message: 02/02/2008, 06h51
  2. petit probleme avec un (unsigned long int)
    Par Micks71 dans le forum C
    Réponses: 6
    Dernier message: 19/05/2006, 12h08
  3. [VB6.0]Probleme avec le type Form
    Par Tankian dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 13h26
  4. [DLL] Probleme avec le Type TRichEdit !
    Par TOTO32 dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2005, 20h50
  5. Réponses: 2
    Dernier message: 30/08/2004, 14h48

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