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

SSIS Discussion :

Stockage d'une commande SQL dans une variable créée en SSIS?


Sujet :

SSIS

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 49
    Points : 30
    Points
    30
    Par défaut Stockage d'une commande SQL dans une variable créée en SSIS?
    Bonjour,
    j'ai une base de donnée sur Oracle Developper, je veux faire à partir de laquelle une extraction d'un ensemble de colonnes(par une commande sql) pour faire leurs chargements dans une base de destination que je l'ai déjà crée sur MS Sql Server 2008.
    *) j'ai crée la commande sql qui fait la jointure entre mes tables et me rend les colonne dont j'avais besoin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT cours.date_cours, cours.code_valeur,referentielclient.stock_name, cours.cours_cloture, cours.cours_ouverture , resumeclient.High, resumeclient.low, cours.cours_max, cours.cours_min, cours.quantite_transaction, 
    resumeclient.volume from cours, referentielclient, resumeclient where cours.code_valeur = referentielclient.code 
    and resumeclient.code = referentielclient.code
    *) j'ai crée sur ssis une variable nommée variable_oracle.

    Mon soucis c'est que Je veux savoir comment je peut stocker la commande sql à cette variable??
    Je serai reconnaissante si quelqu'un peut me donner une proposition.
    Merci.

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Euh... En la mettant dans la variable? Je ne saisis pas le problème excuse moi...
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 240
    Points : 359
    Points
    359
    Par défaut
    Pour mettre ta commande littérale dans une variable il suffit de la mettre comme valeur tout simplement.

    Si tu parles d' un peu de dynamisme, tu peux stocker ta commande dans une base de données et utiliser un Execute SQL Command Task pour récupérer ta requête et tu stockes la valeur dans ta variable.

    ---

    Sinon si tu parles de stocker le résultSet de ta requête, c'est à dire l'ensemble des lignes retournés par ta requête, il te faut utiliser une variable de type Objet. Tu utilises cette variable toujours dans un composant SQL, en modifiant la propriété ResultSet par défaut à "None" en "Full Result Set"

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 49
    Points : 30
    Points
    30
    Par défaut
    Merci bien Nished pour votre réponse, mais svp vous pouvez m'expliquer un peu plus car je suis débutante en ssis
    Oui, je veux stocké l'ensemble de lignes de ma requette en une variable. J'ai créé une varible de type objet mais, je sais pas comment je peut modifier la propriété result set??

  5. #5
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 240
    Points : 359
    Points
    359
    Par défaut
    Alors dans votre Control Flow, vous créez un Execute SQL Task.

    Vous configurez le composant en double cliquant dessus, et vous modifiez la propriété ResultSet, mettez la à Full Result Set.

    Par contre pour exploiter ton ResultSet il faut utiliser un ForEach Loop.

    http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/64014

    C'est assez technique pour un commencement dans SSIS. Vu que vous débutez, souhaitez vous réellement faire celà ? Ou voulez vous juste utiliser une variable, qui stockerait uniquement la requête et que dans un OLE DB source (Dans un Data Flow Task) celle-ci soit interprétée pour récupérer vos données.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 49
    Points : 30
    Points
    30
    Par défaut
    Je vous remercie Nished pour le temps que tu as pris pour me répondre. Merci encore pour le lien c'est trés intéressant mais dans mon cas, je doit utiliser comme source de flux de donnée "la source OLE DB" pour que je pourrai charger par la suite les colonnes que la commande va les retourner dans une destination OLE DB(c'est un tableau que je l'ai crée sur sql server et qui va acceuillir les donnée retournée par cette commande sql).
    Bon, Voilà ce que j'ai fait exactement:
    J'ai crée une variable du type string et j'ai utilisé comme source de flux de donnée la source OLE DB puis j'ai mis ma requette dans la valeur du variable mais
    lors de l'exécution de la définition de la connexion source, j'ai reçu l'alerte suivante
    http://www.developpez.net/forums/att...1&d=1318936434
    Je sait pas ou' est le probléme ? Y'a t'il une option dans la source oracle que je devais le controller pour vérifier si elle utilise toujours le code page par défaut ou pas?
    Images attachées Images attachées  

Discussions similaires

  1. Exécuter une commande SQL dans une commande Dos
    Par meddly dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 21/11/2013, 11h37
  2. extraire le jour dans une requete sql dans une colone de type date
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/04/2011, 21h42
  3. Réponses: 2
    Dernier message: 07/09/2010, 14h15
  4. [CR XI] Plage de date dans une commande SQL pour une analyse de pareto
    Par Gdf.pdo dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2009, 11h35
  5. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37

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