mercredi 17 avril 2013

FLASHBACK Version Query....

Le but de ce billet est d'afficher l'historique des salaires pour un employé d'une session active:
Dans l'exemple suivant, le salaire de l'employé est de 8600.







On va modifier le salaire de cet employé pour 9000.











On va valider le tout avec un COMMIT et on va augmenter le salaire de 30%.
















Ensuite, les différentes versions du salaire sont affichées en spécifiant la clause VERSIONS.
Par défaut, elle peut être spécifiée comme suit: VERSIONS BETWEEN {SCN | TIMESTAMP} MINVALUE ET MAXVALUE.
 
La clause VERSIONS est une extension SQL pour les requêtes. Vous pouvez avoir des opérations DML et DDL qui utilisent une clause de versions dans les sous-requêtes. 












  

On voit bien l'historique du salaire de cet employé.
 

Utilisation de PURGE avec la commande DROP TABLE.

Pour supprimer la table test, c'est vraiment très simple. Il suffit de taper ceci: DROP TABLE test. Si on veut la récupérer, on peut utiliser la syntaxe FLASHBACK, voir le lien sur mon blogue ou en cliquant ici.

On peut vérifier l'objet effacé avec l'instruction suivante:

SELECT original_name, operation, droptime FROM recyclebin;

Oracle Database 10g introduit une nouvelle fonctionnalité pour supprimer des tables. Lorsque vous supprimer une table, Oracle ne libère pas immédiatement l'espace associé à la table. Au contraire, la base de données renomme la table et Oracle le place dans une corbeille, où il peut ensuite être récupéré avec la déclaration  FLASHBACK TABLE tel qu'expliqué dans le lien. 
Si vous voulez libérer immédiatement l'espace associé à la table au moment où vous lancez l'instruction DROP TABLE, puis inclure la clause PURGE comme indiqué comme suit: DROP TABLE test PURGE

Spécifiez PURGE seulement si vous voulez supprimer la table et libérer de l'espace qui lui est associée en une seule étape. Si vous spécifiez PURGE, Oracle ne place pas la table et ses objets dans la corbeille.
Cette clause vous permet d'économiser une étape dans le processus. Il fournit également une sécurité renforcée.


Note: Vous ne pouvez pas annuler une instruction DROP TABLE avec la clause de PURGE, et vous ne pouvez pas récupérer la table si vous spécifiez la clause PURGE. Cette fonctionnalité n'était pas disponible dans les versions antérieures.
C'est nouveau dans la version 10g.