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

Oracle Discussion :

Forms 6i : erreur lors de la création d'une séquence


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut Forms 6i : erreur lors de la création d'une séquence
    Bonjour,

    Je travaille sous Windows XP, Forms 6i et Oracle 8.1.5.

    Voilà mon problème : j'ai besoin, dans un écran Forms, de créer une séquence dont le nom est dépendant de plusieurs paramètres.
    J'utilise donc le code suivant pour le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               BEGIN
                  Var_Commande := 'CREATE SEQUENCE ' || Var_Nom_Sequence || ' INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999';
                  EXECUTE IMMEDIATE Var_Commande;
               EXCEPTION
                	 WHEN OTHERS THEN
      	                v_retour := Alert_Fonctionnelle(1122,Var_Nom_Sequence,'','');
      	                Go_Item('BL_CTRL1.t_journee');
     	                  RAISE Form_Trigger_Failure;
               END;
    Or, la compilation échoue à cause de :
    Erreur 103, ligne ...., colonne ....
    Symbole "IMMEDIATE" rencontré à la place d'un des symboles suivants :
    := . ( @ % ;
    Or, si je prend ce bout de code, et que je l'utilise sous TOAD, ça fonctionne !!

    Quelqu'un a une idée ??

    Merci par avance.

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Le moteur PL de forms n'étant pas au niveau de celui de la base certaines instructions ne sont pas connues. C'est le cas de execute immediate.

    Tu peux t'en sortir en utilisant le package forms exec_sql ou celui de la base de données dbms_sql.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    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
    ou un simple forms_ddl()
    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

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Tu peux t'en sortir en utilisant le package forms exec_sql ou celui de la base de données dbms_sql.
    Bon, j'oublie le EXECUTE IMMEDIATE alors...

    Du coup, ça donne quelque chose comme ça ?? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               BEGIN
                  Var_Commande := 'CREATE SEQUENCE ' || Var_Nom_Sequence || ' INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999';
                  V_Retour := DBMS_SQL.EXECUTE(Var_Commande);
               EXCEPTION
                	 WHEN OTHERS THEN
      	                v_retour := Alert_Fonctionnelle(1122,Var_Nom_Sequence,'','');
      	                Go_Item('BL_CTRL1.t_journee');
     	                  RAISE Form_Trigger_Failure;
               END;

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Je viens de tester avec FORMS_DDL : ça a l'air de fonctionner.

    Merci beaucoup !!

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

Discussions similaires

  1. Erreur lors de la création d'une séquence
    Par J.Arnaud dans le forum Toad
    Réponses: 0
    Dernier message: 10/06/2008, 12h02
  2. Réponses: 1
    Dernier message: 22/02/2008, 11h30
  3. Réponses: 1
    Dernier message: 12/02/2008, 10h34
  4. Erreur lors de la création d'une variable
    Par neuro6 dans le forum C++
    Réponses: 5
    Dernier message: 22/01/2007, 08h40
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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