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 :

[SSIS] [2K5] lecture table et stockage en variable


Sujet :

SSIS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 64
    Points
    64
    Par défaut [SSIS] [2K5] lecture table et stockage en variable
    Bonjour,

    J'essaie de lire l'identifiant d'une table et de le stocker dans une variable SSIS.

    Pour cela j'utilise Execute SQL Task que j'ai déjà utilisé pour une date (qui est stocké en numérique) et ça avait très bien marché.

    Là c'est zéro !

    Mon code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MAX(id_ref) AS id_MAX  FROM MAG_LOG_EXPLOIT.dbo.REFCLE
    Comme paramètres dans Execute SQL Task j'ai :
    Result Set Single Row
    Connection Type OLE DB
    Connection ...mon serveur
    SQL Source Type Direct input
    SQL Statement ...voir le code plus haut
    ByPassPrepare True (J'ai essayé False mais ça plante aussi !)

    Puis Result Set

    Result Name id_MAX
    Variable Name User::id_TOP


    Ma variable User::id_TOP

    Name id_TOP
    Scope ...mon package
    DataType Int32
    Value 0


    ERREUR execution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Execute SQL Task] Error: An error occurred while assigning a value to variable "id_TOP": "The type of the value being assigned to variable "User::id_TOP" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object. ".
    Merci à qui trouvera la solution, moi j'y perds mon LATIN

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    S'agissant d'une connexion OLE DB, j'essaierai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MAX(id_ref) FROM MAG_LOG_EXPLOIT.dbo.REFCLE
     
    

    Dans ce cas là, "AS ID_MAX" ne sert à rien (OLE DB).

    Puis

    Puis Result Set

    Result Name 0

    Variable Name User::id_TOP
    Le reste me paraît correct.

    Je suppose que la tâche SQL que tu as cité en référence pour la date utilise une connexion ADO.NET. Ce type de connexion permet le passage de paramètre par le nom.

    Voila, j'espère qu ça va marcher.

    Cordialement.





  3. #3
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Essaye aussi un Result Name à 0. En général il ne nomme pas les variables de retour.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 64
    Points
    64
    Par défaut même point
    Merci beaucoup pour vos efforts ça permet au moins de dire que le problème ne vient pas de là.

    D'après ce que je comprends ce serait une incompatibilité entre la lecture de l'id de la table qui est de type "int" et déclaré "IsId YES" et le type de variable que je n'arrive pas adapter que ce soit Int32,16,64 ou autre.
    Ca ne passe pas

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 64
    Points
    64
    Par défaut EUREKA Execute SQL Task
    Merci encore à Jinroh77 et dlra_

    Grâce à vous j'ai du réflèchir un peu pour voir que j'avais deux requêtes différentes :
    1_ sous SQL Server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id_ref) FROM MAG_LOG_EXPLOIT.dbo.REFCLE
    qui fonctionnait et
    2_ sous SSIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (MAX(id_ref)) FROM MAG_LOG_EXPLOIT.dbo.REFCLE
    qui plantait

    C'est tout bon maintenant

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

Discussions similaires

  1. [SSIS] [2K5] UPDATE table SQL SERVER
    Par bridaine dans le forum SSIS
    Réponses: 1
    Dernier message: 08/04/2010, 08h01
  2. Réponses: 2
    Dernier message: 05/06/2009, 21h50
  3. Réponses: 6
    Dernier message: 20/05/2009, 10h05
  4. [SSIS][2k5] Changer la portée d'une variable
    Par ygrim dans le forum SSIS
    Réponses: 6
    Dernier message: 14/05/2009, 11h46
  5. [SSIS][2k5] Plusieurs tables en destination
    Par verbal34 dans le forum SSIS
    Réponses: 1
    Dernier message: 12/10/2008, 00h43

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