Publicado el :
Administración CREATION_INTERNE

Añadir una Caslib Oracle

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
La acción `table.addCaslib` del conjunto de acciones `Table` se utiliza para crear una caslib Oracle. Los parámetros esenciales incluyen el nombre de la caslib, el tipo de fuente de datos (`srctype="oracle"`), la información de autenticación (nombre de usuario y contraseña), y la ruta de conexión a la base de datos Oracle (formato `//<host_bd>:<puerto>/<nombre_bd>`). Una vez añadida la caslib, las tablas Oracle se pueden cargar en la memoria CAS para análisis distribuidos.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o SASHELP e información de conexión simulada para la base de datos Oracle.

1 Bloque de código
PROC CAS / table.addCaslib
Explicación :
Este ejemplo muestra la adición más simple de una caslib Oracle. Especifica el nombre de la caslib ('orlib'), el tipo de fuente ('oracle'), las credenciales de conexión y la ruta de acceso a la base de datos. Intenta eliminar la caslib si ya existe antes de crearla para asegurar un entorno limpio.
¡Copiado!
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 /* Supprimer la caslib si elle existe déjà pour éviter les erreurs */
8 SIMPLE.dropCaslib / caslib='orlib';
9 
10 /* Ajouter une caslib Oracle avec les informations de connexion minimales */
11 TABLE.addCaslib RESULT=r /
12 caslib="orlib",
13 datasource={
14 srctype="oracle",
15 username="myuser",
16 password="mypass",
17 path="//oradb.example.com:1521/mydb"
18 };
19
20 PRINT r;
21RUN;
22QUIT;
23 
2 Bloque de código
PROC CAS / table.addCaslib
Explicación :
Este ejemplo extiende el caso básico añadiendo opciones comunes. 'globals=TRUE' hace que la caslib sea accesible a todas las sesiones CAS, y 'subdirs=TRUE' permite que la caslib acceda a los subdirectorios de la ruta especificada en la base de datos. También se añade una descripción para una mejor documentación.
¡Copiado!
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 /* Supprimer la caslib si elle existe déjà */
8 SIMPLE.dropCaslib / caslib='global_orlib';
9 
10 /* Ajouter une caslib Oracle, la rendant globale et permettant l'accès aux sous-répertoires */
11 TABLE.addCaslib RESULT=r /
12 caslib="global_orlib",
13 description="Caslib Oracle globale avec sous-répertoires",
14 path="//oradb.example.com:1521/mydb",
15 datasource={
16 srctype="oracle",
17 username="myuser",
18 password="mypass"
19 },
20 globals=TRUE,
21 subdirs=TRUE;
22 
23 PRINT r;
24 
25 /* Lister les caslibs pour vérifier la nouvelle entrée */
26 TABLE.caslibInfo RESULT=r_info;
27 PRINT r_info;
28RUN;
29QUIT;
30 
3 Bloque de código
PROC CAS / table.addCaslib
Explicación :
Este ejemplo avanzado integra lógica de verificación y gestión de errores. Primero verifica la existencia de la caslib y la elimina si es necesario. Luego, intenta añadir la caslib y muestra un mensaje de éxito o fracaso basado en la severidad del resultado de la acción CAS, lo cual es crucial para scripts automatizados o entornos de producción. El nombre de la caslib se define dinámicamente.
¡Copiado!
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 
8 /* Nom dynamique pour la caslib */
9 caslib_name = 'orlib_dynamic';
10 
11 /* Vérifier si la caslib existe déjà avant de tenter de l'ajouter */
12 TABLE.caslibinfo RESULT=caslib_status / caslib=caslib_name;
13 
14 IF (caslib_status.caslibinfo.Name = caslib_name) THEN DO;
15 PRINT 'NOTE: Caslib ' || caslib_name || ' existe déjà. Suppression en cours...';
16 SIMPLE.dropCaslib / caslib=caslib_name;
17 PRINT 'NOTE: Caslib ' || caslib_name || ' supprimée.';
18 END;
19 
20 /* Ajouter la caslib Oracle avec gestion d'erreurs et affichage du statut */
21 TABLE.addCaslib RESULT=r /
22 caslib=caslib_name,
23 datasource={
24 srctype="oracle",
25 username="myuser",
26 password="mypass",
27 path="//oradb.example.com:1521/mydb"
28 };
29 
30 IF (r.severity = 0) THEN DO;
31 PRINT 'NOTE: Caslib ' || caslib_name || ' ajoutée avec succès.';
32 END ELSE DO;
33 PRINT 'ERREUR: Échec de l''ajout de la caslib ' || caslib_name;
34 PRINT r;
35 END;
36 
37RUN;
38QUIT;
39 
4 Bloque de código
PROC CAS / table.addCaslib / table.loadtable Data
Explicación :
Este ejemplo destaca una integración más profunda con SAS Viya utilizando un dominio de autenticación (`authdomain`) preconfigurado en el servidor CAS. Esto centraliza la gestión de la información de identificación y mejora la seguridad. El ejemplo simula una tabla Oracle y muestra cómo cargar esta tabla en la memoria CAS a través de la caslib recién creada, y luego muestra una vista previa de los datos. Se incluye una limpieza para eliminar los objetos creados.
¡Copiado!
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 
8 /* Création de données d'exemple pour simuler une table Oracle */
9 DATA mydata;
10 INPUT ID $ Name $ Value;
11 DATALINES;
12 101 Apple 25
13 102 Banana 30
14 103 Orange 45
15 ;
16 RUN;
17 
18 /* Supprimer la caslib si elle existe déjà */
19 SIMPLE.dropCaslib / caslib='orlib_ad';
20 
21 /* Ajouter une caslib Oracle en utilisant un domaine d'authentification (authdomain) */
22 /* Note: L'authdomain 'oracle_auth' doit être préconfiguré sur le serveur CAS */
23 TABLE.addCaslib RESULT=r /
24 caslib="orlib_ad",
25 datasource={
26 srctype="oracle",
27 authdomain="oracle_auth", /* Utilise un domaine d'authentification Viya */
28 path="//oradb.example.com:1521/mydb"
29 };
30 PRINT r;
31 
32 /* Si la caslib a été ajoutée avec succès, tenter de charger une table */
33 IF (r.severity = 0) THEN DO;
34 /* Simuler une table existante dans Oracle en créant une table temporaire CAS */
35 DATA casuser.my_oracle_table;
36 SET mydata;
37 RUN;
38 
39 /* Charger une table depuis la caslib Oracle (simulée) vers la mémoire CAS */
40 TABLE.loadtable RESULT=lr /
41 caslib="orlib_ad",
42 path="MY_ORACLE_TABLE", /* Nom de la table dans la base de données Oracle */
43 casout={
44 name="my_cas_table",
45 replace=TRUE
46 };
47 PRINT lr;
48 
49 /* Afficher les 5 premières lignes de la table chargée */
50 TABLE.fetch casout.my_cas_table / to=5;
51 END;
52 
53 /* Nettoyage: Supprimer la table chargée et la caslib */
54 TABLE.droptable / caslib='casuser' name='my_cas_table';
55 SIMPLE.dropCaslib / caslib='orlib_ad';
56 
57RUN;
58QUIT;
59 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.