Exemples d’utilisation de tables externes
Dans notre exemple, nous allons définir une table d’enregistrement externe qui peut être utilisée dans le gestionnaire d’exception d’une procédure stockée ou d’un déclencheur.La table externe est choisie parce que les messages de toute exception traitée seront stockés dans le journal, même si la transaction dans laquelle le processus a été exécuté est annulée en raison d’une autre exception non traitée.À des fins de démonstration, notre tableau ne contient que deux colonnes : un horodatage et un message texte.La troisième colonne stocke le séparateur de ligne :
CREATE TABLE ext_log
EXTERNAL FILE 'd:\externals\log_me.txt' (
stamp CHAR(24),
message CHAR(100),
crlf CHAR(2) -- Pour Windows
);
COMMIT;
Créez maintenant un déclencheur pour enregistrer automatiquement l’horodatage et le séparateur de ligne chaque fois qu’un message est écrit dans la table :
SET TERM ^;
CREATE TRIGGER bi_ext_log FOR ext_log
ACTIVE BEFORE INSERT
AS
BEGIN
IF (NEW.stamp IS NULL) THEN
NEW.stamp = CAST (CURRENT_TIMESTAMP AS CHAR(24));
NEW.crlf = ASCII_CHAR(13) || ASCII_CHAR(10);
END ^
COMMIT ^
SET TERM ;^
Insertion de certaines entrées (cela peut être fait dans un gestionnaire d’exception)
INSERT INTO ext_log (message)
VALUES('Shall I compare thee to a summer''s day?');
INSERT INTO ext_log (message)
VALUES('Thou art more lovely and more temperate');
Contenu du fichier externe:
2015-10-07 15:19:03.4110Shall I compare thee to a summer's day? 2015-10-07 15:19:58.7600Thou art more lovely and more temperate