08 septembre 2017

Oracle et les ordres DDL : empêcher le COMMIT implicite du DDL avec un trigger - Prevent the Implicit COMMIT of DDL with trigger

IntroductionSous Oracle tout ordre DDL a un COMMIT implicite; c'est une règle d'or qu'on vous a enseigné dès qu'on commence à travailler avec ce SGBD. Néanmoins ce COMMIT implicite peut-être évité même après que l'ordre DDL ait réussi; nous allons tester cela avec l'exemple du CREATE TABLE. Points d'attentionN/A. Base de testsN'importe quelle base Oracle.  Exemples============================================================================================Le COMMIT implicite d'un ordre DDL : modes de... [Lire la suite]
Posté par David DBA à 13:11 - - Permalien [#]
Tags : , ,

24 août 2017

Les services Oracle : où trouver la liste complète? - Oracle Services: Where can I find the complete list?

IntroductionPour se connecter à une base Oracle via le fichier TNSNAMES.ora, Oracle recommande d'utiliser le nom d'un service avec le paramètre SERVICE_NAME. On peut aussi utiliser le nom de l'instance avec INSTANCE_NAME mais Oracle met depuis plusieurs versions en avant cette notion de services. Entre le client et le serveur Oracle, il s'agit d'un maillon supplémentaire dans la chaîne de connexion et il est fondamental de pouvoir identifier les services disponibles dans une base pour s'y connecter et de savoir à quelle PDB ce service... [Lire la suite]
Posté par David DBA à 17:37 - - Permalien [#]
Tags : ,
04 août 2017

Les tablespaces sous Oracle - article 3 : modifications - Tablespaces under Oracle - article 3: changes

IntroductionCet article est le troisième et dernier d'une série consacrée aux tablespaces. Le premier concernait la recherche d'informations sur les tablespaces, le deuxième la création et la suppression de ces mêmes tablespaces et celui-ci leur modification.Partie 1 : afficher les informations sur les tablespaces Partie 2 : création et suppression de tablespacesPartie 3 : modifications de tablespaces (cet article) Points d'attentionN/A. Base de testsUne base Oracle 12c. ... [Lire la suite]
Posté par David DBA à 09:10 - - Permalien [#]
Tags : ,
01 août 2017

Les tablespaces sous Oracle - article 2 : création et suppression - Tablespaces under Oracle - article 2: creation and deletion

IntroductionCet article est le deuxième d'une série consacrée aux tablespaces. Le premier concernait la recherche d'informations sur les tablespaces, celui-ci concerne la création et la suppression de ces mêmes tablespaces.Partie 1 : afficher les informations sur les tablespaces Partie 2 : création et suppression de tablespaces (cet article)Partie 3 : modifications de tablespaces Points d'attentionLes recommandations Oracle sont les suivantes pour créer un tablespace :          • EXTENT... [Lire la suite]
Posté par David DBA à 17:30 - - Permalien [#]
Tags : ,
28 juillet 2017

Les tablespaces sous Oracle - article 1 : afficher les informations - Tablespaces under Oracle - article 1: view information

IntroductionCet article est le premier d'une série consacrée aux tablespaces. Ce sujet est trop volumineux pour tenir en un seul article, il sera donc rédigé en plusieurs parties. Vous y trouverez surtout les commandes SQL pour effectuer les opérations de base sur les tablespaces plutôt que des infos théoriques sur ces objets.Partie 1 : introduction et afficher les informations sur les tablespaces (cet article)Partie 2 : création et suppression de tablespaces Partie 3 : modifications de tablespacesPour rappel, un tablespace Oracle est... [Lire la suite]
Posté par David DBA à 13:36 - - Permalien [#]
Tags : ,
18 juillet 2017

Bug Oracle 11g : vue système DICT inconnue à l'ouverture de la base - Oracle bug: system view DICT unknown

IntroductionSur Oracle 11gR2 (et peut-être sur les versions précédentes), il existe un bug très curieux : les vues du dictionnaire de données comme DICT ne sont pas accessibles une fois la base ouverte si on a fait un DESC sur ces vues avant que la base ne soit ouverte. En d'autre mots, si on ouvre la base de données étape par étape (STARTUP NOMOUNT puis des ALTER DATABASE) et qu'on veuille accéder à ces vues à une étape où elles ne sont pas encore accessibles, alors elles restent inaccessibles même quand la base est OPEN! Nous allons... [Lire la suite]
Posté par David DBA à 09:21 - - Permalien [#]
Tags :

03 juillet 2017

SYS ne peut pas tout faire sous Oracle - SYS can not do everything under Oracle

          IntroductionSYS est le user le plus puissant sous Oracle! Mais cela ne signifie pas pour autant qu'il puisse TOUT faire! Même lui a des limites, fixées par les développeurs du SGBD et c'est l'objet de cet article. Points d'attentionEn tant que SYS vous pouvez facilement casser votre base, donc faites bien attention si vous vous connectez avec ce user. A noter que parmi les bonnes pratiques d'Oracle, il est dit qu'il ne faut quasiment jamais se connecter comme AS SYSDBA (user... [Lire la suite]
Posté par David DBA à 20:15 - - Permalien [#]
Tags : ,
08 mai 2017

Un monitoring des index plus évolué que celui d'Oracle - More advanced index monitoring than Oracle one

IntroductionSi vous avez déjà utilisé l'outil de monitoring des index d'Oracle, vous avez dû être effarés devant la pauvreté de celui-ci. Oracle n'indique en effet que si Oui ou Non un index est utilisé durant la période de monitoring mais pas le nombre de fois qu'on l'utilise. Dans le cas où vous voulez supprimer des index d'une table qui en a trop parce qu'ils ralentissement les INSERT et DELETE, la première chose à faire est de voir si ces index sont utilisés ou non mais aussi combien de fois ils le sont avant de prendre une... [Lire la suite]
Posté par David DBA à 22:21 - - Permalien [#]
Tags : , ,
23 avril 2017

Liste des colonnes mises à jour : trigger et prédicat UPDATING - List of updated columns : trigger and UPDATING predicate

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 - - Permalien [#]
Tags : , ,
08 avril 2017

Un ordre DDL est entouré par deux commit implicites; le premier est conditionnel - A DDL order is surrounded by two commit

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 - - Permalien [#]
Tags : , , ,