23 avril 2017

Liste des colonnes mises à jour sur une table : trigger et prédicat UPDATING

IntroductionSi vous voulez obtenir la liste des colonnes mises à jour en SQL pour une table donnée, à des fins d'audit, vous faites comment? Vous essayez de récupérer les ordres SQL UPDATE et vous décomposez celui-ci pour récupérer les noms des colonnes? Attention, certains ordres seront plus difficiles à traiter que d'autres comme la gestion des sous requêtes, des hints qui ne doivent pas être pris en compte etc etc. Vous utilisez un trigger et utilisez les paramètres OLD et NEW? Vous utilisez le package DBMS_FGA?La solution que je... [Lire la suite]
Posté par David DBA à 18:28 - - Commentaires [0] - Permalien [#]
Tags : , ,

08 avril 2017

Un ordre DDL est entouré par deux commit implicites; le premier est conditionnel

IntroductionVous savez qu'avec une commande DDL un Commit implicite est effectué. OK, mais savez-vous qu'en réalité il peut y en avoir deux, un avant et un après? Non? Alors ce post est pour vous!La règle est la suivante : un Commit a lieu normalement après une commande DDL (si elle n'échoue pas) mais aussi avant cette commande si un ordre DML non validé/non annulé a eu lieu avant la commande DDL.En résumé :           commande DML de nom... [Lire la suite]
Posté par David DBA à 12:32 - - Commentaires [0] - Permalien [#]
Tags : , , ,
02 avril 2017

Changer l'ordre des colonnes d'une table avec l'attribut Invisible

     IntroductionChez un client, un responsable développement est venu me voir avec un problème bien particulier. Il avait une table de 300 colonnes et, quand il voulait récupérer le nom de ses clients, au lieu de simplement faire un SELECT nom FROM clients, il récupérait toutes les données de la table puis faisait un extract du fichier .txt créé en se basant sur la position des caractères. En clair, pour lire le nom, il récupérait les caractères 50 à 99 dans ce fichier. OK, c'était une application ancienne,... [Lire la suite]
Posté par David DBA à 09:56 - - Commentaires [0] - Permalien [#]
Tags : ,