CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

SQL - trigger sous oracle

sd460
sd460
Niveau 10
29 octobre 2009 à 13:01:02

Bonjour,

Je rencontre un problème bizarre (de mon point de vue, sachant que je débute plus ou moins en PL/SQL, et je que je suis un novice dans l'utilisation de SQL-developper).

Je suis en train d'écrire un script , le début de l'exécution se passe bien, par contre, au moment d'arrivers aux triggers, sql-developper ne crée qu'un unique trigger au lieu des 4 qui existent dans mon script.

Un exemple simple :

http://pastebin.com/m76f52317

Si je tape ca, je n'obtiens qu'un seul trigger. Quand je compile avec debuggage, j'obtiens l'erreur :
Erreur(86,1): PLS-00103: Encountered the symbol "CREATE"

Il semble indiquer qu'il manque une fin de trigger , mais je ne vois pas :doute:

merci :)

sd460
sd460
Niveau 10
29 octobre 2009 à 15:25:02

mmmmh bon, à coup de debuggage et de recherches sur le net, j'ai finalement trouvé que l'ajout d'un "/" après la déclaration de mes triggers mettait fin à mon problème.
Par contre je ne sais pas pourquoi... Donc si vous avez une explication....
Je suppose que c'est associé à SQL Developer...

sd460
sd460
Niveau 10
29 octobre 2009 à 21:05:57

Bonsoir,

J'ai une autre question vu que je suis partit sur le PL/SQL...
Dans l'un de mes triggers, je vérifie que le code entré au niveau applicatif est le meme que celui enregistré dans la base de données.
En cas de différence, je lève une erreur , mais avant de lever cette erreur , j'incrémente ne nombre d'essai infructueux dans un champ dédié.
Sauf que la levée de l'erreur empèche le commit, du coup ca ne marche pas :triste:
Et vu qu'on ne peut pas commiter dans un trigger, je suis bloqué.
Y a-t-il une solution :question:
Le code correspondant est le suivant :

IF v_code != :NEW.code THEN
UPDATE COMPTE
SET NBRE_ESSAI = v_nbre_essai+ 1
WHERE ncompte = :NEW.ncompte ;
IF v_nbre_essai >= 2 THEN
UPDATE COMPTE
SET bloque = 'Y'
WHERE ncompte = :NEW.ncompte ;
END IF;
RAISE_APPLICATION_ERROR(-20001, 'Wrong code');
END IF;

(les 2 SET ne passent pas en cas de levée d'erreur)
merci

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment