Dans le script SQL, le ";" ne signale pas systèmatiquement la fin d'une
requête, par exemple, pour un déclencheur le code SQL est le suivant:
[code]
CREATE TRIGGER agent_commune
BEFORE INSERT ON agent
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'Impossible de trouver l''enregistrement lié')
WHERE (SELECT Num FROM Commune WHERE Num = NEW.Localite) IS NULL;
END;
[/code]
Donc il faudrait trouver autre chose pour découper le contenu du script.
J'ai essayé d'utiliser les expressions régulières (Regex) mais je n'y
arrive pas... Je n'y connais rien aux expressions régulières, après
avoir lu qq sites, je suis arrivé au code suivant (qui ne fonctionne pas):
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Xavier
Cédric a écrit :
..... [code] CREATE TRIGGER agent_commune BEFORE INSERT ON agent FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'Impossible de trouver l''enregistrement lié') WHERE (SELECT Num FROM Commune WHERE Num = NEW.Localite) IS NULL; END; [/code]
ca ne fonctionnera pas mieux , car tu peux te retrouver avec un scrit fantaisiste comme ça :
Create Procedure Toto @Titi int = null as Begin Select @Titi End
ou il n'y a pas de ; ni de End;
La solution est d'utilisé un parser incluant la grammaire du serveur Sq l sur lequel tu travailles, comme ça au passage, ca te permet de vérifier l a syntaxe du code PL/SQL de ton script.
Xavier.
Cédric a écrit :
.....
[code]
CREATE TRIGGER agent_commune
BEFORE INSERT ON agent
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'Impossible de trouver l''enregistrement lié')
WHERE (SELECT Num FROM Commune WHERE Num = NEW.Localite) IS NULL;
END;
[/code]
ca ne fonctionnera pas mieux , car tu peux te retrouver avec un scrit
fantaisiste comme ça :
Create Procedure Toto
@Titi int = null
as
Begin
Select @Titi
End
ou il n'y a pas de ; ni de End;
La solution est d'utilisé un parser incluant la grammaire du serveur Sq l sur
lequel tu travailles, comme ça au passage, ca te permet de vérifier l a syntaxe
du code PL/SQL de ton script.
..... [code] CREATE TRIGGER agent_commune BEFORE INSERT ON agent FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'Impossible de trouver l''enregistrement lié') WHERE (SELECT Num FROM Commune WHERE Num = NEW.Localite) IS NULL; END; [/code]
ca ne fonctionnera pas mieux , car tu peux te retrouver avec un scrit fantaisiste comme ça :
Create Procedure Toto @Titi int = null as Begin Select @Titi End
ou il n'y a pas de ; ni de End;
La solution est d'utilisé un parser incluant la grammaire du serveur Sq l sur lequel tu travailles, comme ça au passage, ca te permet de vérifier l a syntaxe du code PL/SQL de ton script.