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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 confirmé

    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
    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.

  3. #3
    Membre confirmé
    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
    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 chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    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 confirmé

    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
    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 !

+ 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