Partager via


Source OLE DB

Mis à jour : 15 septembre 2007

La source OLE DB extrait des données d'une série de bases de données relationnelles compatibles OLE DB à l'aide d'une table de base de données, d'une vue ou d'une commande SQL. Par exemple, la source OLE DB peut extraire des données de tables de bases de données Microsoft Access ou SQL Server.

ms141696.note(fr-fr,SQL.90).gifRemarque :
Pour charger des données depuis une source de données qui utilise Microsoft Office Excel 2007, faites appel à une source OLE DB. Vous ne pouvez pas utiliser une source Excel pour charger des données depuis une source de données Excel 2007. Pour plus d'informations, consultez Gestionnaire de connexions OLE DB. Pour charger des données depuis une source de données qui utilise Microsoft Office Excel 2003 ou une version antérieure, optez pour une source Excel. Pour plus d'informations, consultez Source Excel.

La source OLE DB fournit quatre modes d'accès aux données différents pour l'extraction des données :

  • Une table ou une vue.
  • Une table ou une vue spécifiée dans une variable.
  • Les résultats d'une instruction SQL. La requête peut être une requête paramétrée.
  • Les résultats d'une instruction SQL stockée dans une variable.

Si vous utilisez une requête paramétrée, vous pouvez mapper des variables à des paramètres pour spécifier les valeurs de paramètres individuels dans les instructions SQL.

Cette source utilise un gestionnaire de connexions OLE DB pour se connecter à une source de données et le gestionnaire de connexions spécifie le fournisseur OLE DB à utiliser. Pour plus d'informations, consultez Gestionnaire de connexions OLE DB.

Un projet Integration Services fournit également l'objet de source de données à partir duquel vous pouvez créer un gestionnaire de connexions OLE DB et rendre ainsi les sources de données et les vues de source de données disponibles pour la source OLE DB. Pour plus d'informations, consultez Source de données (SSIS) et Vue de source de données (SSIS).

Selon le fournisseur OLE DB, certaines contraintes s'appliquent à la source OLE DB :

  • Le fournisseur Microsoft OLE DB pour Oracle ne prend pas en charge les types de données Oracle BLOB, CLOB, NCLOB, BFILE ou UROWID et la source OLE DB ne peut pas extraire de données des tables qui contiennent des colonnes de ces types de données.
  • Le fournisseur IBM OLE DB DB2 et le fournisseur Microsoft OLE DB DB2 ne prennent pas en charge l'utilisation d'une commande SQL qui appelle une procédure stockée. Lorsque ce type de commande est utilisé, la source OLE DB ne peut pas créer les métadonnées de colonne ; par conséquent, les composants de flux de données qui suivent la source OLE DB dans le flux de données ne disposent pas de données de colonnes et l'exécution du flux de données échoue.

La source OLE DB a une sortie normale et une sortie d'erreur.

Utilisation d'instructions SQL paramétrées

La source OLE DB peut utiliser une instruction SQL pour extraire des données. L'instruction peut être une instruction SELECT ou EXEC.

La source OLE DB utilise un gestionnaire de connexions OLE DB pour établir une connexion à la source de données à partir de laquelle elle extrait des données. Selon le fournisseur que le gestionnaire de connexions OLE DB utilise et le système de gestion de bases de données relationnelles (SGBDR) auquel le gestionnaire de connexions se connecte, différentes règles s'appliquent à la dénomination des paramètres et à la constitution de leur liste. Si les noms des paramètres sont retournés à partir du SGBDR, vous pouvez utiliser des noms de paramètres pour mapper les paramètres d'une liste de paramètres aux paramètres d'une instruction SQL ; sinon, les paramètres sont mappés aux paramètres de l'instruction SQL en fonction de leur position ordinale dans la liste de paramètres. Les types de noms de paramètres pris en charge varient selon le fournisseur. Par exemple, certains fournisseurs imposent l'utilisation de noms de variables ou de colonnes, d'autres exigent l'emploi de noms symboliques tels que 0 ou Param0. Il convient de consulter la documentation spécifique du fournisseur pour obtenir des informations sur les noms de paramètres à utiliser dans les instructions SQL.

Lorsque vous utilisez un gestionnaire de connexions OLE DB, vous ne pouvez pas utiliser de sous-requêtes paramétrées car la source OLE DB ne peut pas dériver d'informations sur les paramètres par le biais du fournisseur OLE DB. Toutefois, vous pouvez utiliser une expression pour concaténer les valeurs de paramètres dans la chaîne de requête et définir la propriété SqlCommand de la source.

Dans le concepteur SSIS, vous configurez une source OLE DB à l'aide de la boîte de dialogue Éditeur de source OLE DB et mappez les paramètres à des variables dans la boîte de dialogue Définition des paramètres de la requête.

Spécifications de paramètres à l'aide de positions ordinales

Si aucun nom de paramètre n'est retourné, l'ordre selon lequel les paramètres sont répertoriés dans la liste Paramètres dans la boîte de dialogue Définition des paramètres de la requête régit le marqueur de paramètre auquel ils sont mappés au moment de l'exécution. Le premier paramètre de la liste est mappé au premier ? dans l'instruction SQL, le deuxième au deuxième ?, etc.

L'instruction SQL suivante sélectionne des lignes à partir de la table Product de la base de données AdventureWorks. Le premier paramètre dans la liste Mappages est mappé au premier paramètre de la colonne Color, le deuxième paramètre à la colonne Size.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

Les noms de paramètres n'ont aucune incidence. Par exemple, si un paramètre porte le même nom que la colonne à laquelle il s'applique, mais qu'il n'est pas placé à la bonne position ordinale dans la liste Paramètres, le mappage de paramètres effectué au moment de l'exécution utilise la position ordinale du paramètre, pas le nom du paramètre.

La commande EXEC impose généralement l'utilisation des noms des variables qui fournissent des valeurs de paramètres dans la procédure comme noms de paramètres.

Spécification de paramètres à l'aide de noms

Si les noms de paramètres réels sont retournés à partir du SGBDR, les paramètres utilisés par une instruction SELECT et EXEC sont mappés par nom. Les noms de paramètres doivent correspondre aux noms que la procédure stockée, exécutée par l'instruction SELECT ou l'instruction EXEC, attend.

L'instruction SQL suivante exécute la procédure stockée uspGetWhereUsedProductID, disponible dans la base de données AdventureWorks.

EXEC uspGetWhereUsedProductID ?, ?

La procédure stockée attend les variables, @StartProductID et @CheckDate, pour fournir des valeurs de paramètres. L'ordre dans lequel les paramètres apparaissent dans la liste Mappages n'est pas pertinent. Le seul impératif est que les noms de paramètres correspondent aux noms de variables dans la procédure stockée, notamment le signe @. L'ordre dans lequel les paramètres apparaissent dans la liste Mappages n'est pas pertinent.

Mappage de paramètres à des variables

Les paramètres sont mappés à des variables qui fournissent les valeurs de paramètres au moment de l'exécution. Les variables sont généralement des variables définies par l'utilisateur, bien que vous puissiez utiliser les variables système fournies par Integration Services. Si vous utilisez des variables définies par l'utilisateur, assurez-vous que vous choisissez un type de données compatible avec celui de la colonne référencée par le paramètre mappé. Pour plus d'informations, consultez Variables Integration Services.

Résolution des problèmes liés à la source OLE DB

À partir de Microsoft SQL Server 2005 Service Pack 2 (SP2), vous pouvez consigner les appels que la source OLE DB effectue auprès de fournisseurs de données externes. Vous pouvez utiliser cette nouvelle fonctionnalité de journalisation pour résoudre des problèmes liés au chargement de données que réalise la source OLE DB depuis des sources de données externes. Pour journaliser les appels que la source OLE DB effectue auprès d'un fournisseur de données externes, activez la journalisation des packages et sélectionnez l'événement Diagnostic au niveau du package. Pour plus d'informations, consultez Dépannage de l'exécution des packages.

Configuration de la source OLE DB

Vous pouvez définir les propriétés par programme ou par le biais du concepteur SSIS.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue Éditeur de source OLE DB, cliquez sur l'une des rubriques suivantes :

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par programme. Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue Éditeur avancé ou par programme, cliquez sur l'une des rubriques suivantes :

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques suivantes :

Voir aussi

Concepts

Destination OLE DB
Variables Integration Services
Création du flux de données d'un package

Autres ressources

Sources Integration Services

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Nouveau contenu :
  • Explication de la raison pour laquelle un gestionnaire de connexions OLE DB ne peut pas utiliser de sous-requêtes paramétrées.

12 décembre 2006

Nouveau contenu :
  • Ajout d'une note sur l'utilisation de sources de données Excel 2007.
  • Ajout d'informations sur la manière dont SQL Server 2005 SP2 inclut de nouveaux messages de journalisation avec lesquels les utilisateurs peuvent résoudre les appels qu'effectue la source auprès de fournisseurs de données externes.

5 décembre 2005

Nouveau contenu :
  • Informations ajoutées sur l'utilisation d'instructions SQL paramétrées.