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

Oracle Discussion :

[PL/SQL] trigger instead of sur une XMLTYPEVIEW


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Points : 14
    Points
    14
    Par défaut [PL/SQL] trigger instead of sur une XMLTYPEVIEW
    comme indiqué dans le titre je veux effectuer un trigger instead of sur une vue de type xml.

    ma table ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TABLE tableT
    A varchar2(20),
    B varchar2(20)
    et ma vue à ça
    elle est créée comme ça :
    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
    create or replace view v of xmltype xmlschema "http://www.oracle.com/t.xsd" element "t"
    with object id (extract(OBJECT_VALUE, '/t/a').getNumberVal())
    as 
    select xmlelement(
      "t",
      xmlattributes(
        'http://www.oracle.com/t.xsd' as "xmlns",
        'http://www.w3.org/2001/XMLSchema-instance' as "xmlns:xsi",
        'http://www.oracle.com/t.xsd
        http://www.oracle.com/t.xsd' as "xsi:schemaLocation"),
      xmlforest(
        t.a as "a",
        t.b as "b"
      )
    ) from tableT t
    je veux faire une insertion sur ma vue qui me remplisse correctement ma table TableT
    ce que je veux insérer est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <t>
         <a>machin</a>
         <b>truc</b>
    </t>
    et là je sèche complètement, je n'y arrive pas, je ne sais pas comment récupérer le contenu de <t>...</t> pour l'insérer dans la table.

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    bon j'ai trouvé !!!

    le trigger est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE OR REPLACE
    TRIGGER INSERTION_VUE_V INSTEAD OF INSERT ON V 
    REFERENCING NEW AS N 
    FOR EACH ROW 
    BEGIN  
      insert into tableT(a, b)
    values(  
    :N.object_value.extract('/t/a/text()').getstringval(),
    :N.object_value.extract('/t/b/text()').getstringval()
    );
    END;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL 2008R2] Trigger de suppression sur une table récursive
    Par sebRD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/05/2011, 14h44
  2. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  3. Réponses: 5
    Dernier message: 06/09/2005, 16h01
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  5. [TADOTable] reconnaitre le trigger INSTEAD OF d'une vue...
    Par littledoudou dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/12/2003, 12h39

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