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 :

numérotation séquentielle et automatique


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut numérotation séquentielle et automatique
    * Bonjour, *

    j'ai un champ de type varchar, je veux mettre par exemple au début 22/2010 mais il y aura un erreur dans le trigger pre-insert qui incrémente ce champ en sélectionnant le max et ajoute un. S'il y a une idée aide moi Merci

  2. #2
    Expert confirmé
    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
    Par défaut
    Quelle est la partie qui doit être incrémentée ?

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut
    Bonjour,
    la partie à gauche et je veux que la partie à droite se change selon l'année courante. Merci

  4. #4
    Expert confirmé
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SubStr('22/2010',1, InStr('22/2101','/')-1) + 1 || '/' || To_Char(SYSDATE,'YYYY') FROM dual

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut
    Bonjour Yerbouti,

    j'ai essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SubStr('0/2010',1, InStr('0/2101','/')-1) + 1 || '/' || To_Char(SYSDATE,'YYYY') into :bon_entree.NUMERO_BE
    FROM bon_entree;
    mais j'ai le message suivant suite à une enregistrement dans la base:

    FRM-40735:LE DECLENCHEUR PRE-INSERT A DETECTE UNE EXCEPTION ORA-1422 NON TRAITEE.

  6. #6
    Expert confirmé
    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
    Par défaut
    testez vos ordres SQL sous Sql*plus, Toad ou SqlDeveloper, et vous comprendrez.
    Il n'y a aucune clause de filtrage dans votre requête qui doit donc ramenu plusieurs lignes, or SELECT ... INTO ne doit ramener qu'une ligne.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    essaie ça dans le pre_insert du block:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT MAX(SUBSTR(col_seq,1, INSTR(col_seq,'/')-1))+1|| '/' || To_Char(SYSDATE,'YYYY')
    INTO :col_seq
    FROM tabseq;

  8. #8
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut
    Bonjour ,

    Comment je peux initialiser la valeur pour chaque année. Par exemple:
    on a en fin décembre ce numéro :233/2010
    et au début de 2011 on a ce numéro: 1/2011.

    Merci pour vos propositions.

  9. #9
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut
    Bonjour,
    je vous souhaite bonne année 2011.

    je veux savoir si quelqu'un a un e solution pour ce problème s'il vous plait c'est très urgent.

  10. #10
    Expert confirmé
    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
    Par défaut
    J'imagine qu'avant d'incrémenter le numéro, il faut voir si l'année a changé. Puisque votre valeur 233/2010 doit être stockée en base, il faut lire ce dernier enregistrement et vérifier que l'année (les 4 derniers chiffre) est la même. Sinon, il faut réinitialiser la séquance à 1.

  11. #11
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Par défaut
    Merci pour votre réponse mais comment je peux apporter la dernière enregistrement? (sans utiliser un curseur)

Discussions similaires

  1. [WD-2013] numérotation séquentielle \r
    Par emilk dans le forum Word
    Réponses: 2
    Dernier message: 17/02/2014, 08h39
  2. Numérotation séquentielle par 4
    Par cyr78 dans le forum Word
    Réponses: 25
    Dernier message: 22/04/2013, 02h41
  3. Numérotation séquentielle + année
    Par Mounamidou dans le forum VBA Access
    Réponses: 5
    Dernier message: 18/01/2010, 14h55
  4. "numéroter" des matrices automatiquement
    Par comoliv02 dans le forum MATLAB
    Réponses: 10
    Dernier message: 12/09/2007, 11h25
  5. Numérotation automatique selon les utilisateurs
    Par Safaritn dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/08/2005, 14h11

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