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

Développement SQL Server Discussion :

Procédure Stockée et vue


Sujet :

Développement SQL Server

  1. #1
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut Procédure Stockée et vue
    Bonjour,

    J'utilise un frameWork Java qui sait se mapper sur une table ou une vue SQL-Server.

    J'ai 2 tables A,B avec une relation 1,n.


    Je voudrais creer une VUE contenant tous les elements de la table A plus un champs contenant une concatenation d'un champ b de B.

    J'ai donc fait une procédure stockée getComments qui me récupère toutes les valeurs de mon champ B.b pour un id passé en parametre.

    Mon problème est pour appeler cette PS dans une vue.

    Sous Oracle le script de ma vue serait qqc comme :
    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
     
    -- Procedure Stockee --
     
    CREATE FUNCTION getComments(param IN INTEGER) RETURN VARCHAR2 IS
    	txt_commentaires VARCHAR2(4000);
    BEGIN
    	commentaires := '';
    	FOR c IN (SELECT txt_Commentaires FROM B WHERE B.Id = param) LOOP
    c.MAT_FILE_NAME;
    	END LOOP;
    	RETURN SUBSTR(commentaires , 2);
    END;
     
    -- Vue --
    CREATE VIEW maVue AS
    SELECT 	ID_A,
            DES_A,
            GetComments(ID_A) AS Comments_A			
    FROM		A;
    Mais en SQL Server ... je sais rame ...

    Je sais pas si je suis clair ... mais merci pour vos reponses ou pistes ...
    Take it HiSy

  2. #2
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonsoir hisy,

    Ca dépend de la version de SQL Serveur.

    En 2000, il faut utiliser une udf (à la place de votre procédure stockée). SQL serveur n'accepte pas qu'une requête utilise une procédure stockée qui peut potentiellement avoir des effets de bords (traitements), il faut passer par une fonction.

    En 2005, on peut utiliser un CTE (voir ce post http://www.developpez.net/forums/d60...ation-colonne/).

    Il y a aussi des solutions à base de FOR XML.

    @+

  3. #3
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    J'ai effectivement trouvé une solution a base de FOR XML.

    Merci.

    Je ferme le post.
    Take it HiSy

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

Discussions similaires

  1. performances : select, procédure stockée ou vue ?
    Par Benoit_Durand dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/02/2011, 14h02
  2. besoin de conseil sur les procédures stockées et vues.
    Par zenfantasy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2007, 21h41
  3. Procédure stockée et vues
    Par freegreg dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/03/2007, 10h05
  4. Critères dans Vue et Procédures stockées
    Par DMboup dans le forum Projets ADP
    Réponses: 9
    Dernier message: 20/05/2005, 21h55
  5. Vue et procédure stockée
    Par juelo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2004, 15h52

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