Les exemples utilisent des données générées (datalines) ou SASHELP, puis chargent/enregistrent ces données via le connecteur Informix.
1 Bloc de code
PROC CASUTIL / LIBNAME Data
Explication : Cet exemple montre comment établir une connexion basique à une base de données Informix en utilisant l'instruction LIBNAME. Il définit les paramètres essentiels de connexion tels que le serveur, l'hôte, le port, la base de données, l'utilisateur et le mot de passe. Il crée ensuite une petite table SAS en mémoire, puis charge cette table dans une table CAS. La partie commentée montre comment charger des données directement depuis Informix vers CAS. Les options doivent être adaptées à votre environnement Informix.
Copié !
/* Établit une connexion LIBNAME à la base de données Informix */
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
LIBNAME myinfor INFORMIX
SERVER="your_informix_server_name" /* Nom du serveur Informix */
HOST="your_informix_host" /* Adresse IP ou nom d'hôte d'Informix */
PORT=9088 /* Port par défaut d'Informix */
DATABASE="your_informix_db" /* Nom de la base de données Informix */
USER="your_username" /* Nom d'utilisateur Informix */
PASSWORD="your_password" /* Mot de passe Informix */
SCHEMA="your_schema"
DBCLIENT_MAX_DATA_BYTES=104857600; /* Option pour la taille maximale des données */
/* Crée une table SAS en mémoire CAS pour l'exemple */
DATA casuser.sample_data;
input ID Name $ Value;
datalines;
1 John 100
2 Jane 150
3 Mike 200
;
RUN;
/* Charge la table SAS 'sample_data' dans une table CAS 'informix_table' */
PROC CASUTIL;
LOAD DATA=casuser.sample_data OUTCASLIB=mycaslib CASOUT="informix_table" REPLACE;
QUIT;
/* Pour lire depuis Informix vers CAS (si 'my_informix_data' existe dans Informix) */
/* PROC CASUTIL; */
/* LOAD DATA=myinfor.my_informix_data OUTCASLIB=mycaslib CASOUT="loaded_informix_data" REPLACE; */
/* QUIT; */
LIBNAME myinfor CLEAR;
1
/* Établit une connexion LIBNAME à la base de données Informix */
2
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
3
4
LIBNAME myinfor INFORMIX
5
SERVER="your_informix_server_name"/* Nom du serveur Informix */
6
HOST="your_informix_host"/* Adresse IP ou nom d'hôte d'Informix */
7
PORT=9088/* Port par défaut d'Informix */
8
DATABASE="your_informix_db"/* Nom de la base de données Informix */
9
USER="your_username"/* Nom d'utilisateur Informix */
10
PASSWORD="your_password"/* Mot de passe Informix */
11
SCHEMA="your_schema"
12
DBCLIENT_MAX_DATA_BYTES=104857600; /* Option pour la taille maximale des données */
13
14
/* Crée une table SAS en mémoire CAS pour l'exemple */
15
DATA casuser.sample_data;
16
INPUT ID Name $ Value;
17
DATALINES;
18
1 John 100
19
2 Jane 150
20
3 Mike 200
21
;
22
RUN;
23
24
/* Charge la table SAS 'sample_data' dans une table CAS 'informix_table' */
Explication : Cet exemple montre la création d'une caslib pour Informix, en spécifiant des options courantes comme 'DBLOCALE'. Il utilise ensuite PROC CASUTIL pour sauvegarder une table SAS (sashelp.class) dans une nouvelle table Informix. Enfin, il charge la table nouvellement créée depuis Informix vers CAS pour vérification et imprime les premières observations. Cela illustre un flux de travail typique de chargement de données SAS vers Informix pour une utilisation ultérieure.
Copié !
/* Connexion au serveur CAS */
CAS;
/* Établit une caslib pour Informix avec des options supplémentaires */
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
CASLIB myinformix_lib datasource=(
driver="informix",
server="your_informix_server_name",
host="your_informix_host",
port=9088,
database="your_informix_db",
username="your_username",
password="your_password",
schema="your_schema",
dblocale="en_US.57372"
) incaslib; /* incaslib rend la caslib disponible immédiatement */
/* Crée une table SAS temporaire qui sera chargée dans Informix via CAS */
DATA _null_;
set sashelp.class;
file _webout;
output;
RUN;
DATA casuser.students;
set sashelp.class;
RUN;
/* Sauvegarde la table CAS 'students' dans Informix */
PROC CASUTIL;
SAVE DATA=casuser.students
CASLIB=myinformix_lib
CASOUT="informix_students_table" REPLACE;
QUIT;
/* Vérifie que la table a été créée dans Informix et peut être chargée */
PROC CASUTIL;
LOAD DATA=myinformix_lib.informix_students_table
CASOUT="loaded_informix_students" REPLACE;
QUIT;
PROC PRINT DATA=loaded_informix_students (obs=5);
RUN;
CASLIB myinformix_lib_informix DROP;
CAS TERMINATE;
1
/* Connexion au serveur CAS */
2
CAS;
3
4
/* Établit une caslib pour Informix avec des options supplémentaires */
5
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
6
7
CASLIB myinformix_lib datasource=(
8
driver="informix",
9
server="your_informix_server_name",
10
host="your_informix_host",
11
port=9088,
12
database="your_informix_db",
13
username="your_username",
14
password="your_password",
15
schema="your_schema",
16
dblocale="en_US.57372"
17
) incaslib; /* incaslib rend la caslib disponible immédiatement */
18
19
/* Crée une table SAS temporaire qui sera chargée dans Informix via CAS */
20
DATA _null_;
21
SET sashelp.class;
22
file _webout;
23
OUTPUT;
24
RUN;
25
26
DATA casuser.students;
27
SET sashelp.class;
28
RUN;
29
30
/* Sauvegarde la table CAS 'students' dans Informix */
31
PROC CASUTIL;
32
SAVE DATA=casuser.students
33
CASLIB=myinformix_lib
34
CASOUT="informix_students_table" REPLACE;
35
QUIT;
36
37
/* Vérifie que la table a été créée dans Informix et peut être chargée */
38
PROC CASUTIL;
39
LOAD DATA=myinformix_lib.informix_students_table
40
CASOUT="loaded_informix_students" REPLACE;
41
QUIT;
42
43
PROC PRINTDATA=loaded_informix_students (obs=5);
44
RUN;
45
46
CASLIB myinformix_lib_informix DROP;
47
CAS TERMINATE;
3 Bloc de code
PROC CAS / PROC CASUTIL Data
Explication : Cet exemple illustre un scénario avancé où des options de filtrage (WHERE) et de sélection de colonnes (DROP) sont appliquées directement lors du chargement de données depuis Informix vers CAS. Cela permet de charger uniquement les données pertinentes, réduisant ainsi la consommation de ressources et le temps de traitement. La table Informix 'my_large_dataset' est simulée ici par une création de table CAS pour des raisons d'autonomie de l'exemple.
Copié !
/* Connexion au serveur CAS */
CAS;
/* Établit une caslib pour Informix (assurez-vous que la connexion est valide) */
/* Pour cet exemple, nous supposons qu'une table 'my_large_dataset' existe dans Informix */
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
CASLIB myinformix_adv_lib datasource=(
driver="informix",
server="your_informix_server_name",
host="your_informix_host",
port=9088,
database="your_informix_db",
username="your_username",
password="your_password",
schema="your_schema"
) incaslib;
/* Simulation d'une table Informix pour l'exemple */
/* Normalement, cette table existerait déjà dans votre base de données Informix */
/* Ici, nous la créons directement dans CAS pour simuler l'accès à une table Informix existante */
DATA casuser.my_large_dataset;
length id 8 product $20. quantity 8 price 8;
do id = 1 to 1000;
product = 'Produit_' || put(ceil(ranuni(0)*10), 2.);
quantity = ceil(ranuni(0)*100);
price = round(ranuni(0)*1000, 0.01);
output;
end;
RUN;
/* Charger sélectivement des données d'Informix avec un filtre et une sélection de colonnes */
/* Supposons que 'my_large_dataset' est le nom de la table dans Informix */
PROC CASUTIL;
LOAD DATA=myinformix_adv_lib.my_large_dataset(where=(quantity > 50) drop=(price))
CASOUT="filtered_informix_data" REPLACE;
QUIT;
PROC PRINT DATA=filtered_informix_data (obs=10);
RUN;
CASLIB myinformix_adv_lib DROP;
CAS TERMINATE;
1
/* Connexion au serveur CAS */
2
CAS;
3
4
/* Établit une caslib pour Informix (assurez-vous que la connexion est valide) */
5
/* Pour cet exemple, nous supposons qu'une table 'my_large_dataset' existe dans Informix */
6
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
7
8
CASLIB myinformix_adv_lib datasource=(
9
driver="informix",
10
server="your_informix_server_name",
11
host="your_informix_host",
12
port=9088,
13
database="your_informix_db",
14
username="your_username",
15
password="your_password",
16
schema="your_schema"
17
) incaslib;
18
19
/* Simulation d'une table Informix pour l'exemple */
20
/* Normalement, cette table existerait déjà dans votre base de données Informix */
21
/* Ici, nous la créons directement dans CAS pour simuler l'accès à une table Informix existante */
Explication : Cet exemple met en évidence l'utilisation d'options avancées pour la performance (NTHREADS, DBCONNECT_MAX_DATA_BYTES, PRESERVE_CURSORS) et la gestion des erreurs (_ERROR_FILE_, _ERROR_ACTION_) lors de l'interaction avec Informix via CAS. Il simule un scénario où des données avec des erreurs potentielles sont enregistrées, montrant comment le connecteur peut être configuré pour gérer ces situations plutôt que d'interrompre le processus. Le fichier d'erreur spécifié permettrait d'auditer les lignes ignorées.
Copié !
/* Connexion au serveur CAS */
CAS;
/* Établit une caslib pour Informix avec des options de performance et de gestion d'erreur */
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
CASLIB myinformix_perf_lib datasource=(
driver="informix",
server="your_informix_server_name",
host="your_informix_host",
port=9088,
database="your_informix_db",
username="your_username",
password="your_password",
schema="your_schema",
/* Options de performance */
NTHREADS=4, /* Nombre de threads à utiliser pour le transfert de données */
DBCONNECT_MAX_DATA_BYTES=104857600, /* Taille maximale des blocs de données */
PRESERVE_CURSORS=TRUE, /* Aide à la performance pour des requêtes répétées */
/* Options de gestion d'erreur (ex: ignore les lignes erronées, nécessite un fichier de log d'erreurs) */
_ERROR_FILE_="/tmp/informix_errors.log",
_ERROR_ACTION_="CONTINUE"
) incaslib;
/* Crée une table CAS avec des données qui pourraient potentiellement causer des erreurs (simulé) */
DATA casuser.data_with_potential_errors;
input ID Name $ Age;
datalines;
1 Alice 25
2 Bob 30
3 Charlie . /* Simulation d'une donnée manquante/potentiellement erronée */
4 David 40
;
RUN;
/* Sauvegarde la table CAS dans Informix, avec gestion d'erreurs */
PROC CASUTIL;
SAVE DATA=casuser.data_with_potential_errors
CASLIB=myinformix_perf_lib
CASOUT="informix_error_test" REPLACE;
QUIT;
/* Tente de charger la table pour vérifier */
PROC CASUTIL;
LOAD DATA=myinformix_perf_lib.informix_error_test
CASOUT="loaded_error_test" REPLACE;
QUIT;
PROC PRINT DATA=loaded_error_test;
RUN;
/* Nettoyage */
CASLIB myinformix_perf_lib DROP;
CAS TERMINATE;
1
/* Connexion au serveur CAS */
2
CAS;
3
4
/* Établit une caslib pour Informix avec des options de performance et de gestion d'erreur */
5
/* Remplacez les valeurs d'hôte, de port, de base de données, d'utilisateur et de mot de passe par les vôtres */
6
7
CASLIB myinformix_perf_lib datasource=(
8
driver="informix",
9
server="your_informix_server_name",
10
host="your_informix_host",
11
port=9088,
12
database="your_informix_db",
13
username="your_username",
14
password="your_password",
15
schema="your_schema",
16
/* Options de performance */
17
NTHREADS=4, /* Nombre de threads à utiliser pour le transfert de données */
18
DBCONNECT_MAX_DATA_BYTES=104857600, /* Taille maximale des blocs de données */
19
PRESERVE_CURSORS=TRUE, /* Aide à la performance pour des requêtes répétées */
20
/* Options de gestion d'erreur (ex: ignore les lignes erronées, nécessite un fichier de log d'erreurs) */
21
_ERROR_FILE_="/tmp/informix_errors.log",
22
_ERROR_ACTION_="CONTINUE"
23
) incaslib;
24
25
/* Crée une table CAS avec des données qui pourraient potentiellement causer des erreurs (simulé) */
26
DATA casuser.data_with_potential_errors;
27
INPUT ID Name $ Age;
28
DATALINES;
29
1 Alice 25
30
2 Bob 30
31
3 Charlie . /* Simulation d'une donnée manquante/potentiellement erronée */
32
4 David 40
33
;
34
RUN;
35
36
/* Sauvegarde la table CAS dans Informix, avec gestion d'erreurs */
37
PROC CASUTIL;
38
SAVE DATA=casuser.data_with_potential_errors
39
CASLIB=myinformix_perf_lib
40
CASOUT="informix_error_test" REPLACE;
41
QUIT;
42
43
/* Tente de charger la table pour vérifier */
44
PROC CASUTIL;
45
LOAD DATA=myinformix_perf_lib.informix_error_test
46
CASOUT="loaded_error_test" REPLACE;
47
QUIT;
48
49
PROC PRINTDATA=loaded_error_test;
50
RUN;
51
52
/* Nettoyage */
53
CASLIB myinformix_perf_lib DROP;
54
CAS TERMINATE;
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.