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

MS SQL Server Discussion :

Lot DTS : variables globales


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Par défaut Lot DTS : variables globales
    Bonjour

    Je voudrais savoir s'il est possible, dans une "tâche d'exécution de requêtes SQL" d'un lot DTS, de récupérer les variables globales du lot ?

    Parce que là je suis obligée de passer d'abord par une procédure stockée (à qui je fournis mes paramètres) pour faire mes requêtes SQL, puis d'appeler mon lot pour faire mes transformations, alors qu'il serait plus simple pour moi de tout faire dans le lot.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Oui, si le provider accepte les requêtes paramétrées. Si c'est une connexion OLEDB, insère un ? pour indiquer que tu veux placer un paramètre.

  3. #3
    Membre confirmé Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Par défaut
    Merci je vais regarder ce que ça donne

    Edit : super ça marche, merci !

    Pour plus de détails j'ai trouvé un exemple ici : http://www.aspfree.com/c/a/MS-SQL-Se...TS-Designer/1/

  4. #4
    Membre confirmé Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Par défaut
    J'ai crié victoire trop vite. J'avais testé avec une requête simple, mais là ça ne marche plus avec ce que je veux faire.

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    -- Inserts all the DK to export in a temporary keys table.
     
    -- Temporary Table Creation
     
    IF exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DKP_DK_EXPORT_TMP]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[DKP_DK_EXPORT_TMP]
     
    CREATE TABLE DKP_DK_EXPORT_TMP
    ([CUSTOMER_CODE] [varchar] (36) NOT NULL,
    [EXTRACTION_DATE] [char] (6) NOT NULL,
    [OPE_RF_CODE] [varchar] (15) NOT NULL,
    [START_DATE] [char] (6) NOT NULL,
    [OPC_CODE] [varchar] (10) NULL,
    [DK_VALUE] [int] NULL)
     
    DECLARE @completeDate char(8)
    DECLARE @truncDate char(6)
     
    SET @completeDate = CONVERT(char(8), GETDATE(), 112)
    SET @truncDate = SUBSTRING(@completeDate, 3, 6)
     
     
    /* REAL CUSTOMERS, PHYSICAL ORIGIN */
     
    INSERT INTO DKP_DK_EXPORT_TMP
     
    SELECT DK_SET.CUSTOMER_CODE, @truncDate, DK_SET.OPE_RF_CODE, @truncDate, ITEMS.OPC_CODE, CUR.CURRENT_VALUE
     
    FROM DKP_DK_SET DK_SET, DKP_OPE_ITEMS ITEMS, DKP_DK_CURRENT CUR
    WHERE DK_SET.CONTINENT_CODE = ?
    AND DK_SET.CURRENT_ORIGIN_TYPE = 0 -- physical origin
     
    AND DK_SET.CUSTOMER_CODE IN
    (SELECT CUSTOMER_CODE FROM DKP_UF_CUSTOMERS CUSTOMERS
    WHERE CONTINENT_CODE = ?
    AND CUSTOMER_TYPE = 0) -- real customer
     
    AND DK_SET.LAST_OPE > 
    (SELECT DATE_VALUE
    FROM DKP_PROPERTIES
    WHERE PROPERTY_ID = 'LAST_DK_EXPORT_' + ?)
     
    AND ITEMS.OPE_RF_CODE = DK_SET.OPE_RF_CODE
    AND CUR.CONTINENT_CODE = ?
    AND CUR.CUSTOMER_CODE = DK_SET.CUSTOMER_CODE
    AND CUR.OPC_CODE = ITEMS.OPC_CODE
     
     
     
    /* REAL CUSTOMERS, VIRTUAL ORIGIN */
     
    INSERT INTO DKP_DK_EXPORT_TMP
     
    SELECT DK_SET.CUSTOMER_CODE, @truncDate, DK_SET.OPE_RF_CODE, @truncDate, ITEMS.OPC_CODE, CUR.CURRENT_VALUE
    FROM DKP_DK_SET DK_SET, DKP_UF_CUSTOMERS CUST, DKP_DK_CURRENT CUR, DKP_OPE_ITEMS ITEMS
    WHERE DK_SET.CONTINENT_CODE = ?
    AND DK_SET.CUSTOMER_CODE = CUST.CUSTOMER_CODE
    AND DK_SET.CURRENT_ORIGIN_TYPE = 1 -- virtual origin
     
    AND DK_SET.LAST_OPE > 
    (SELECT DATE_VALUE
    FROM DKP_PROPERTIES
    WHERE PROPERTY_ID = 'LAST_DK_EXPORT_' + ?)
     
    AND ITEMS.OPE_RF_CODE = DK_SET.OPE_RF_CODE
    AND CUR.CONTINENT_CODE = DK_SET.CONTINENT_CODE
    AND CUR.CUSTOMER_CODE = DK_SET.CURRENT_ORIGIN_CODE
    AND CUR.OPC_CODE = ITEMS.OPC_CODE
    AND CUST.CUSTOMER_TYPE = 0 -- real customer
    Images attachées Images attachées   

  5. #5
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Je n'ai pas pris le temps de lire toute la requête, mais si ta syntaxe est sujet, essaie de placer ton code dans une procédure stockée et d'envoyer le ? en paramètre. Parfois le parseur du DTS a des problèmes avec les requêtes trop complexes.

  6. #6
    Membre confirmé Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Par défaut
    Visiblement le problème vient du faire que je déclare également des variables internes : si je mets mon

    DECLARE @continentCode varchar(4)

    avant ma requête, il m'affiche un message d'erreur.

    On dirait également qu'on ne peut pas utiliser de ? dans des sous requêtes (cf image jointe)
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/06/2011, 10h48
  2. Utiliser les variables dans un lot DTS
    Par miniquick dans le forum Développement
    Réponses: 1
    Dernier message: 03/06/2008, 13h04
  3. [VB.NET]DTS ET Variables Globales
    Par Franck2mars dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/05/2006, 09h26
  4. LOT DTS - nom de la table variable
    Par speed034 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/02/2006, 10h20
  5. lots DTS et variables
    Par le_scrameustache dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/09/2004, 17h54

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