Bonjour à tous,
dans le cadre d'un développement d'un batch shell, j'utilise un import pour charger des données dans une table qui contient 12 colonnes.
Ensuite sur base des données chargées, je fais le ménage dans une autre table qui possède plus ou moins la même structure sauf deux colonnes qui sont en fait des clés étrangères que je peux retrouver à travers deux autres tables. Sinon les autres colonne sont les même que ma première table où j'effectue l'import.
Une fois que j'ai effacé les données que je n'ai plus besoin, je voudrais recopié les données depuis ma table où j'ai effectué l'import vers la seconde table où j'ai fait le ménage.
Je pense que j'aurais besoin d'un procédure stockée mais je ne m'y connais vraiment pas.
J'ai fait le test avec un trigger et ça fonctionne.
S'il vous pourriez m'aiguiller sur la manière de faire la même chose via une procédure stockée ce serait super.
Merci
PS : voici à quoi ressemble ce je voudrais faire sous forme de trigger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 CREATE TRIGGER "TG_INSERT_IV" AFTER INSERT ON "TMP_INPUT_VALUES" REFERENCING NEW AS "NEW_TMP_INPUT_VALUES" FOR EACH ROW INSERT INTO INPUT_VALUES ( ID, ELEMENT_PATH, VALUE, ENTERPRISE_ID, SURVEY_ID, UPDATE_DATE, TUPLE_SEQ_NUMBER, READONLY, DIMENSION ) VALUES ( NEW_TMP_INPUT_VALUES.ID, NEW_TMP_INPUT_VALUES.ELEMENT_PATH, NEW_TMP_INPUT_VALUES.VALUE, -- foreign keys (SELECT e.ID FROM ENTERPRISE e WHERE e.ESTABLISHMENT = NEW_TMP_INPUT_VALUES.ESTABLISHMENT AND e.SUBDIVISION = NEW_TMP_INPUT_VALUES.SUBDIVISION AND e.ENTERPRISE_DBRIS = NEW_TMP_INPUT_VALUES.ENTERPRISE_DBRIS), (SELECT s.ID FROM SURVEY s WHERE s.YEAR = NEW_TMP_INPUT_VALUES.YEAR AND s.SEQ_NUMBER=NEW_TMP_INPUT_VALUES.SEQ_NUMBER), CURRENT TIMESTAMP, NEW_TMP_INPUT_VALUES.TUPLE_SEQ_NUMBER, NEW_TMP_INPUT_VALUES.READONLY, NEW_TMP_INPUT_VALUES.DIMENSION )
Partager