SQL Plus me fait des blagues, ca me fait pas rire [Oracle] - SQL/NoSQL - Programmation
Marsh Posté le 16-04-2003 à 16:36:43
ca n'a surement rien a voir mais dans ton script de creation des tables fait un delete de toutes les tables que tu crees (avant de les creer bien sur)
Marsh Posté le 16-04-2003 à 16:41:46
mon _purgeBase.sql fait ca, j'ai oublié de preciser que je l execute avant tout test . De toute facon meme avec les tables en place si je cree (en ecrasant) les procedure puis les triggers, la creation des triggers me fait une petite procedure au debut comme je l ai expliqué...
je suis comme qui dirait "espenté"
Marsh Posté le 16-04-2003 à 16:42:47
masure a écrit : mon _purgeBase.sql fait ca, j'ai oublié de preciser que je l execute avant tout test . De toute facon meme avec les tables en place si je cree (en ecrasant) les procedure puis les triggers, la creation des triggers me fait une petite procedure au debut comme je l ai expliqué... |
tu peux pas mettre le fichier _creationtables.sql stp ?
Marsh Posté le 16-04-2003 à 16:47:53
Code :
|
Je rapelle quand meme que (d'apres moi hein) c'est le creationTriggers qui me fait la misere. Mais c'est gentil de chercher toutes les pistes.
Marsh Posté le 16-04-2003 à 18:06:29
tu as pas un "/" tout seule qui trainne en haut de ton fichier de la creation des triggers???
Marsh Posté le 16-04-2003 à 20:09:48
d'après mes souvenirs, en fin de fichier, il ne faut pas mettre de ";" avant le "/", sinon la requête passe deux fois.
Marsh Posté le 16-04-2003 à 20:10:20
Pour plus de simplicité, met comme dernière instruction un "commit", comme ça s'il est éxécuté 2 fois, tu t'en fout
Marsh Posté le 17-04-2003 à 09:02:32
thecoin a écrit : tu as pas un "/" tout seule qui trainne en haut de ton fichier de la creation des triggers??? |
nan
Marsh Posté le 17-04-2003 à 09:03:23
MagicBuzz a écrit : d'après mes souvenirs, en fin de fichier, il ne faut pas mettre de ";" avant le "/", sinon la requête passe deux fois. |
a marche pas un / sans ;
il faut bien les deux pour une syntaxe correcte, dixit sqlplus
Marsh Posté le 17-04-2003 à 21:26:17
ok, j'ai rien dis. Ma version ct le contraire, ça merdait si y'avait les deux. (quand on utilisait "ed" pour éditer le code du moins)
Sinon, le coup du "commit" te convient pas ? Ca pas mal comme solution de contournement...
Marsh Posté le 18-04-2003 à 08:44:44
MagicBuzz a écrit : ok, j'ai rien dis. Ma version ct le contraire, ça merdait si y'avait les deux. (quand on utilisait "ed" pour éditer le code du moins) |
Ben je vais faire ca en attendant pour pas voir le probleme mais d'ici la fin de ce taff j'aimerais bien avoir la solution histoire de pas mettre des commit inutiles toute ma vie
En attendant ca reste une bonne solution
Marsh Posté le 16-04-2003 à 16:26:47
Je suis encore en train de bosser sur cette base. Voici un peu le topo :
_creationTables.sql : crée les tables et les contraintes
_creationTriggers.sql : crée les triggers de ma base
_creationProc.sql : crée les procédure de ma base
_purgeBase.sql : vire les tables, triggers et procedures
je lance _creationTables.sql, tout va bien.
je lance ensuite _creationTriggers.sql, les triggers se creent parfaitement, mais j'ai une erreur en debut d execution qui me dit "create table W_MACHINCHOSE impossible, table existante". Alors je regarde la fin de mon fichier de creation de tables. Comme par hazard la derniere tache est "create table W_MACHINCHOSE".
Je rappelle qu a la fin de mon creationTables.sql, la derniere table W_MACHINCHOSE est bien cree. Je rapelle aussi que je n ai aucun create table dans mon _creationTriggers.sql.
SQLPlus m execute donc la derniere commande de mon .sql en double... je suis tres content.
Ma curiosité me pousse a executer un _creationProc.sql puis un _creationTriggers.sql. Ce dernier m execute un create procedure en debut de script.
Par contre si j execute _creationTriggers.sql puis _creationProc.sql, ce dernier ne m execute une premiere creation de trigger.
conclusion : quand j execute _creationTriggers.sql, il s execute bien mais m execute en plus (c'est cadeau) la derniere commande du script precedant .
ma question : pourquoi
Annexes :
debut du fichier "_creationTriggers.sql"
Si vous voyez qqpart que je rappelle le scipt precedant faite moi signe
Bonus : fin du fichier _creationProc.sql