IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Réactiver une contrainte au niveau d'une partition


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut Réactiver une contrainte au niveau d'une partition
    Bonjour
    j'ai une table T partitionnée et je souhaite réactiver une contrainte d'intégrité uniquement pour les lignes d'une partition spécifique.
    Est-ce possible ?

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je ne pense pas. A ma connaissance la contrainte se définie au niveau de la table et elle est toujours globale.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 131
    Points : 38 546
    Points
    38 546
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Je ne pense pas. A ma connaissance la contrainte se définie au niveau de la table et elle est toujours globale.
    Et ce d'autant plus que les critères de partitionnement et donc la répartition des données peuvent évoluer.
    Que deviendraient les lignes d'une partition non contrainte, qui devraient passer dans une partition contrainte

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut
    OK , donc en gros pas d'astuce pour cette "contrainte technique" imposée par le SGBD ?

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Astuce pour quoi faire ?

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Astuce pour quoi faire ?
    Limiter la réactivation de la contrainte d'intégrité sur une partition uniquement

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Certainement
    Une contrainte peut être activée en présence des données incorrectes du point de vue de la contrainte et je me suis dit que peut être cela pouvait vous aider dans un scénario assez spécifique ou peut être que non.
    Sinon peut être que vous pouvez utiliser un trigger à sa place ou bien peut être non.
    Peut être qu'une vue matérialisée est envisageable et dans ce cas la contrainte pourrais être déplacée sur cette vue ou bien peut être que non.

  8. #8
    Rédacteur


    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 543
    Points
    52 543
    Billets dans le blog
    5
    Par défaut
    Il est possible que vous puissiez simuler cela à l'aide d'une contrainte CHECK utilisant une UDF faisant appel aux tables système. Cependant j'y voit deux écueils :
    1) les utilisateurs qui vont faire des mises à jours devront avoir des privilèges suffisant pour lire les tables système
    2) je ne suis pas sûr qu'Oracle garantisse la validité d'exécution d'une UDF dans les contraintes CHECK lorsque les UDF font appels à des tables autres que la table cible de la contrainte.

    Une autre façon plus propre de faire est d'utiliser un déclencheur, mais le 1) sera toujours d'actualité !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il est possible que vous puissiez simuler cela à l'aide d'une contrainte CHECK utilisant une UDF
    ...
    Restrictions on Check Constraints
    ...
    Conditions of check constraints cannot contain the following constructs:

    Subqueries and scalar subquery expressions

    Calls to the functions that are not deterministic (CURRENT_DATE, CURRENT_TIMESTAMP, DBTIMEZONE, LOCALTIMESTAMP, SESSIONTIMEZONE, SYSDATE, SYSTIMESTAMP, UID, USER, and USERENV)

    Calls to user-defined functions
    ...

  10. #10
    Rédacteur


    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 543
    Points
    52 543
    Billets dans le blog
    5
    Par défaut
    donc déclencheur encapsulant la logique avec accès aux tables systèmes => privilèges particulier d'accès aux tables systèmes pour tous les utilisateurs de la base faisant des INSERT/UPDATE sur cette table ou cette partition.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  11. #11
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je ne vois pas trop ce que vous voulez chercher dans les "tables systèmes". Mais si on s'imagine qu'il y a quelque chose à chercher c'est seulement l'utilisateur propriétaire du trigger qui devrait recevoir les privilèges en question.

Discussions similaires

  1. [AC-2007] AIDE à propos d'une contrainte au niveau d'access
    Par karomaz1 dans le forum Access
    Réponses: 1
    Dernier message: 31/03/2013, 15h22
  2. Réponses: 5
    Dernier message: 17/12/2012, 15h36
  3. Réponses: 4
    Dernier message: 12/07/2012, 14h39
  4. insertion au niveau d'une BD distante à partir d'une procedure
    Par sousoujda2 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 29/08/2008, 14h37
  5. Une contrainte qui depend d'une colonne
    Par redabadache3 dans le forum SQL
    Réponses: 2
    Dernier message: 03/11/2007, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo