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

SQL Oracle Discussion :

Toad view updatable


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut Toad view updatable
    Bonjour à tous,

    j'ai un petit soucis avec TOAD, j'ai en effet créé une vue, mais lorsque je vais dans l'onglet "Column", toutes mes colonnes ont "NO" dans "Updatable" alors que je me suis, me semble-t-il, donné tous les privilèges...

    Le but étant de faire des UPDATE sur cette vue. Sur d'autres vue j'ai pourtant la possibilité de le faire...

    Script de ma vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    CREATE OR REPLACE FORCE VIEW s03.efficience (periode,
                                                 chantier,
                                                 code_point,
                                                 compteur_mensuel,
                                                 jour_location,
                                                 jour_de_presence,
                                                 jour_de_pannes,
                                                 jour_incident,
                                                 jour_intemperie,
                                                 heures_par_jour,
                                                 taux_horaire,
                                                 h_par_jour_calculees,
                                                 h_par_jour_calculees2
                                                )
    AS
       SELECT DISTINCT gtm_receipt.txt_receipt_period periode,
                       gtm_receipt.txt_building_credit chantier,
                       gtm_receipt.cd_box code_point,
                       gtm_receipt.val_unit_rent_tot compteur_mensuel,
                       gtm_receipt.val_day_rent_tot jour_location,
                       NULL jour_de_presence, NULL jour_de_pannes,
                       NULL jour_incident, NULL jour_intemperie,
                       NULL heures_par_jour, NULL taux_horaire,
                       NULL h_par_jour_calculees, NULL h_par_jour_calculees2
                  FROM gtm_receipt
                 WHERE gtm_receipt.typ_debit_cost = '1';
     
     
    DROP SYNONYM XXX.EFFICIENCE;
     
    CREATE SYNONYM XXX.EFFICIENCE FOR S03.EFFICIENCE;
     
     
    DROP SYNONYM YYY.EFFICIENCE;
     
    CREATE SYNONYM YYY.EFFICIENCE FOR S03.EFFICIENCE;
     
     
    GRANT DELETE, INSERT, SELECT, UPDATE ON S03.EFFICIENCE TO ROLS03;
    Merci de me donner un petit coup de pouce

  2. #2
    Expert confirmé 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
    Par défaut
    "Les autres vues ..." contient elles aussi le DISTINCT ?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    A priori les autres n'ont pas de DISTINCT, j'ai lu une documentation comme quoi il fallait pas mettre DISTINCT pour qu'une vue soit modifiable, donc merci.
    Seulement comment faire la même requête du coup sans le DISTINCT ??


    Merci

    PS:
    En enlevant le DISTINCT je peux bien mettre à jour les données dont je fais un SELECT d'une autre table, cependant la requête n'est pas correcte.
    De plus je ne peux pas toucher les autes champs ajoutés ça me met:
    "les colonnes virtuelles ne sont pas autorisées ici".

  4. #4
    Expert confirmé 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
    Par défaut
    Si vous savez répondre à la question : quelle enregistrement dois-je modifier quand plusieurs identiques existent vous pouvez probablement utiliser un trigger "instead of"

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Honnêtement non je cherche depuis hier soir j'ai débloqué un peu grâce à l'indication que vous m'avez fait sur le DISTINCT (à enlever) mais je suis vraiment perdu la...

  6. #6
    Expert confirmé 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
    Par défaut
    Que est-ce que vous essayez d'accomplir ? Donnez-nous plus des détails sur votre problème.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    J'aimerais la même vue que j'ai créée dans le premier post mais que tous les champs soient "UPDATABLE", j'ai beau essayer je n'y arrive pas.

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Ce n'est pas possible à réaliser ?

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    NON.... Les conditions de "misajourabilité" directe d'une vue sont
    • qu'il existe une bijection des lignes de la table vers les lignes de la vue et
    • que les données soient sans transformation.

    Or en utilisant l'opérateur DISTINCT, vous dédoublonner donc, la bijection n'est pas assurée.
    Soit vous vous débarrassez du DISTINCT soit vous ajoutez des triggers INSTEAD OF...

    Lisez ce que j'ai écrit au sujet de la règle de Codd n°6 sur la misajourabilité des vues : http://sqlpro.developpez.com/SGBDR/ReglesCodd/

    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/ * * * * *

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    D'accord merci bien du conseil !

    Mais ne connaissant pas vraiment les triggers j'ai essayé de faire quelque chose hier mais ça ne me donne aucun résultat satisfaisant.
    Si vous pouviez me donner la solution de ma requête avec un trigger, ça serait vraiment sympas.

    Encore merci !

Discussions similaires

  1. update view SQL avec Gridview
    Par kssillati dans le forum ASP.NET
    Réponses: 3
    Dernier message: 21/01/2011, 08h20
  2. Update Materialized View
    Par Pedro87 dans le forum Débuter
    Réponses: 1
    Dernier message: 29/04/2010, 15h35
  3. Update Materialized View
    Par Pedro87 dans le forum SQL
    Réponses: 0
    Dernier message: 27/04/2010, 12h09
  4. faire un update dans un datagrid view
    Par ciara dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/09/2009, 14h20
  5. update de la view
    Par marouane2010 dans le forum MFC
    Réponses: 3
    Dernier message: 22/08/2006, 08h48

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