Publié le :
ETL MIXTE

Chargement en masse via ODBC vers SQL Server

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script SAS© démontre comment utiliser l'option BULKLOAD (bcp=yes) avec un LIBNAME ODBC pour charger efficacement des données d'une table SAS© vers une table dans une base de données SQL Server. Il inclut la création d'un jeu de données temporaire en interne, la suppression d'une table existante dans la base de données cible, la création de la table cible via une instruction DATA STEP, et la vérification du chargement via un PROC PRINT. Le code est compatible avec SAS© Viya 4.
Analyse des données

Type : MIXTE


Le jeu de données source `work.DUBLKDAT` est créé en interne dans le script à l'aide de l'instruction DATALINES/CARDS. Ce jeu de données est ensuite utilisé pour charger les données dans une table `mybulk.DUBLKTAB` résidant dans une base de données externe via la connexion ODBC configurée.

1 Bloc de code
LIBNAME Statement
Explication :
Déclare un LIBNAME nommé `mybulk` pour se connecter à une source de données ODBC. Les macros variables `&dbms` et `&connopt` doivent être définies préalablement (par exemple, dans un autoexec ou un script parent). L'option `bcp=yes` active le mode de chargement en masse (bulkload) pour optimiser les performances lors de l'insertion de grandes quantités de données.
Copié !
1LIBNAME mybulk &dbms &connopt bcp=yes;
2 Bloc de code
PROC DELETE
Explication :
Supprime la table `DUBLKTAB` de la bibliothèque `mybulk` (qui pointe vers la base de données externe). Cette étape est souvent utilisée pour garantir un état propre avant de recréer ou de recharger des données dans la table.
Copié !
1PROC DELETE DATA=mybulk.DUBLKTAB;
2RUN;
3 Bloc de code
DATA STEP Data
Explication :
Crée un jeu de données temporaire `work.DUBLKDAT` en utilisant une instruction DATA STEP avec des données intégrées via l'option CARDS. Ce jeu de données contient des informations sur des individus (nom, âge, sexe, date de naissance) et sert de source pour le chargement en masse.
Copié !
1DATA work.DUBLKDAT;
2 INPUT name $ age sex $ bdate mmddyy.;
3 CARDS;
4amy 3 f 030185
5bill 12 m 121277
6charlie 35 m 010253
7david 19 m 101469
8elinor 42 f 080845
9pearl 78 f 051222
10vera 96 f 101200
11frank 24 m 092663
12georgia 1 f 040687
13henry 46 m 053042
14joann 27 f 020461
15buddy 66 m 101432
16;
17RUN;
4 Bloc de code
DATA STEP Data
Explication :
Crée ou remplace la table `DUBLKTAB` dans la base de données externe (via le LIBNAME `mybulk`) en y chargeant le contenu du jeu de données SAS `work.DUBLKDAT`. Grâce à l'option `bcp=yes` définie sur le LIBNAME `mybulk`, ce DATA STEP déclenche une opération de chargement en masse vers la base de données SQL Server sous-jacente.
Copié !
1DATA mybulk.DUBLKTAB;
2 SET work.DUBLKDAT;
3RUN;
5 Bloc de code
PROC PRINT
Explication :
Affiche le contenu de la table `mybulk.DUBLKTAB` (la table chargée dans la base de données externe) dans le journal SAS. Le format `date7.` est appliqué à la colonne `bdate` pour une meilleure lisibilité des dates. Ceci permet de vérifier que le chargement en masse a été effectué avec succès.
Copié !
1PROC PRINT DATA=mybulk.DUBLKTAB;
2 FORMAT bdate date7.;
3title 'proc print of table';
4RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y