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 :

[BULK COLLECT] ORA-01861


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Points : 67
    Points
    67
    Par défaut [BULK COLLECT] ORA-01861
    Bonjour,
    je rencontre l'erreur :
    ORA-01861: literal does not match format string
    dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    declare
    	TYPE TableauEntrant IS TABLE OF MEMI%ROWTYPE;
    	MyBulk TableauEntrant;
    begin
     	 select distinct MEMO_DATE as MEMI_DATE, 
     	 MEMO_CLIE as MEMI_CLIE
     	 BULK COLLECT INTO MyBulk
     	 from MEMO where MEMO_CLIE='2120840';
     
     	 FORALL i IN MyBulk.FIRST..MyBulk.LAST
     	 		INSERT INTO MEMI VALUES MyBulk(i); 
    end;
    plus particuliairement dans le select, sur le champ date.

    A noter :
    - MEMO_DATE & MEMI_DATE sont de type date
    - Pas d'erreur si le select ne renvoi aucune ligne
    - Pas d'erreur si j'execute le select sans "BULK COLLECT" dans un requêteur

    J'ai essayé de reformater mon champ date(TO_DATE ou trunc) mais rien n'y fait.

    Je suppose que ça vient du "Bulk" car c'est la première fois que je l'utilise mais j'ai beau relire la doc, il me semble que la syntax est correct

    merci d'avance pour votre aide et n'hésitez pas a demander plus de précisions

  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
    Donne un desc de MEMI

    Edit après tests.
    A priori c'est pas le type qui ne serait pas dans le bon ordre ou ayant toutes les colonne (ça plante avec du invalid number/not enough values)

    Je ne suis pas sur qu'on puisse mettre un tableau dans le VALUES d'un insert.
    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
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Points : 67
    Points
    67
    Par défaut
    oui, tu as raison ça doit venir de l'ordre champs, la date est en 2ème et le varchar2 en prems

    Le problème c'est que le distinct est forcement en premier

    Peut on modifier l'ordre des champs sans drop la table ?
    Je dois recréer ma table ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    essaye quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO MEMI VALUES (MyBulk(i).MEMI_CLIE,MyBulk(i).MEMI_DATE);

  5. #5
    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
    Citation Envoyé par clemsouz Voir le message
    Le problème c'est que le distinct est forcement en premier
    En quoi l'ordre est important sur un DISTINCT ???

    que ce soit A,1 à comparer avec A,2
    ou 1,A à comparer avec 2,A c'est pareil !
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

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

Discussions similaires

  1. BULK COLLECT ==> TYPE TABLE OF (Cursor Rowtype)
    Par argoet dans le forum Oracle
    Réponses: 5
    Dernier message: 17/05/2005, 16h47
  2. [Forms6i] Pb avec BULK COLLECT
    Par Kast dans le forum Forms
    Réponses: 3
    Dernier message: 27/12/2004, 16h55
  3. Réponses: 11
    Dernier message: 08/10/2004, 15h12
  4. BULK COLLECT
    Par ghostlord79 dans le forum SQL
    Réponses: 3
    Dernier message: 06/08/2004, 13h42
  5. failed BULK COLLECT
    Par patmaba dans le forum SQL
    Réponses: 7
    Dernier message: 01/06/2004, 12h03

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