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

Toad Oracle Discussion :

impossible de modifier les données d'une vue


Sujet :

Toad Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut impossible de modifier les données d'une vue
    Bonjour,
    j'ai créé une vue sur une table, et avec toad je ne peux pas modifier les données. Les zones de saisie de Toad semble comme blockées !!!

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    on ne peut pas updater une vue... une vue c'est qu'une requête SQL stockée en base et exécuté à chaque SELECT de la vue, comment Oracle pourrait-il mettre à jour des données non stockées ?

  3. #3
    Membre confirmé
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Pas du tout, dans certain cas on peut modifier une vue :

    faite le test suivant :
    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
    40
    SQL> CREATE TABLE MARKETING.AA
      2  (
      3      NOM    VARCHAR2(15)     NULL,
      4      PRENOM VARCHAR2(15)     NULL
      5  )
      6  /
     
    Table crÚÚe.
     
    SQL> CREATE OR REPLACE VIEW MARKETING.VUE_AA
      2  (
      3      NOM,
      4      PRENOM
      5  )
      6  AS
      7  SELECT "NOM","PRENOM"
      8        FROM aa
      9  /
     
    Vue crÚÚe.
     
    SQL> insert into AA (nom,prenom) values ('tigger','scott');
     
    1 ligne crÚÚe.
     
    SQL> commit
      2  ;
     
    Validation effectuÚe.
     
    SQL> insert into vue_AA (nom,prenom) values ('tigger2','scott2');
     
    1 ligne crÚÚe.
     
    SQL> commit
      2  ;
     
    Validation effectuÚe.
     
    SQL>

    Avec SQLPLUS et avec ACCESS en attachement ODBC ca marche parfaitement, c'est juste que peut etre Toad bride la chose !!!!

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    oui bien sûr, j'ai pas voulu compliqué la chose étant donné que faire un update d'une vue me parait particulièrement être une mauvaise pratique

    Pour préciser ce que j'ai dit : on ne peut mettre à jour qu'une vue simple, qui ne contient pas calcul, ni de transformation, ni de jointure, etc...

    PS : merci de penser aux balises CODE

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par orafrance Voir le message
    un update d'une vue me parait particulièrement être une mauvaise pratique
    non, ce n'est pas une mauvaise pratique. C'est aussi une façon de restreindre l'accès à seulement certaines colonnes ou lignes de la tables, style BLAKE ne peut mettre à jour que sa ligne et ne voit que certaines colonnes

    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
    SQL> create view v as 
      select ENAME, DNAME, JOB, EXTRACT(YEAR FROM HIREDATE) HIREDATE 
      from EMP natural join DEPT where ename=user with check option;
     
    View created.
     
    SQL> grant select on v to blake;
     
    Grant succeeded.
     
    SQL>  grant update (job) on v to blake;
     
    Grant succeeded.
     
    SQL> conn BLAKE/PAPER
    SQL> select * from scott.v;
    ENAME      DNAME          JOB         HIREDATE
    ---------- -------------- --------- ----------
    BLAKE      SALES          MANAGER         1981
     
    SQL> update scott.v set job='PRESIDENT';
     
    1 row updated.
     
    SQL> roll
    Rollback complete.
    Avec Toad, je peux très bien mettre à jour ma vue.

    Cependant, comme mentionné par orafrance, de nombreuses conditions rendent la vue inéditable.

  6. #6
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    c'est sûr mais le FGA me semble plus approprié et plus propre qu'une vue pour ça, non ?

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    C'est aussi une façon de restreindre l'accès à seulement certaines colonnes ou lignes de la tables, style BLAKE ne peut mettre à jour que sa ligne et ne voit que certaines colonnes
    il y a la VPD pour ça

Discussions similaires

  1. Comment modifier les données d'une base
    Par anassyto dans le forum Access
    Réponses: 8
    Dernier message: 27/07/2006, 13h26
  2. [POI]recuperer et modifier les données d'une cellule
    Par corbier32 dans le forum Documents
    Réponses: 5
    Dernier message: 04/05/2006, 10h41
  3. Réponses: 2
    Dernier message: 05/10/2005, 15h27
  4. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51
  5. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 17h21

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