/****************************************************************************** * Programme : Maîtrisez table.addCaslib : Le guide pour configurer vos Caslibs Oracle sur SAS Viya * Reference : AJOUTE1FB5 * Source : https://www.wearecas.eu/fr/sampleCode/AJOUTE1FB5 ******************************************************************************/ /* --- BLOC 1 --- */ /* Démarrer une session CAS si ce n'est pas déjà fait */ options cashost="cloud.example.com" casport=5570; cas casauto; proc cas; session casauto; /* Supprimer la caslib si elle existe déjà pour éviter les erreurs */ simple.dropCaslib / caslib='orlib'; /* Ajouter une caslib Oracle avec les informations de connexion minimales */ table.addCaslib result=r / caslib="orlib", datasource={ srctype="oracle", username="myuser", password="mypass", path="//oradb.example.com:1521/mydb" }; print r; run; quit; /* --- BLOC 2 --- */ /* Démarrer une session CAS si ce n'est pas déjà fait */ options cashost="cloud.example.com" casport=5570; cas casauto; proc cas; session casauto; /* Supprimer la caslib si elle existe déjà */ simple.dropCaslib / caslib='global_orlib'; /* Ajouter une caslib Oracle, la rendant globale et permettant l'accès aux sous-répertoires */ table.addCaslib result=r / caslib="global_orlib", description="Caslib Oracle globale avec sous-répertoires", path="//oradb.example.com:1521/mydb", datasource={ srctype="oracle", username="myuser", password="mypass" }, globals=TRUE, subdirs=TRUE; print r; /* Lister les caslibs pour vérifier la nouvelle entrée */ table.caslibInfo result=r_info; print r_info; run; quit; /* --- BLOC 3 --- */ /* Démarrer une session CAS si ce n'est pas déjà fait */ options cashost="cloud.example.com" casport=5570; cas casauto; proc cas; session casauto; /* Nom dynamique pour la caslib */ caslib_name = 'orlib_dynamic'; /* Vérifier si la caslib existe déjà avant de tenter de l'ajouter */ table.caslibinfo result=caslib_status / caslib=caslib_name; if (caslib_status.caslibinfo.Name = caslib_name) then do; print 'NOTE: Caslib ' || caslib_name || ' existe déjà. Suppression en cours...'; simple.dropCaslib / caslib=caslib_name; print 'NOTE: Caslib ' || caslib_name || ' supprimée.'; end; /* Ajouter la caslib Oracle avec gestion d'erreurs et affichage du statut */ table.addCaslib result=r / caslib=caslib_name, datasource={ srctype="oracle", username="myuser", password="mypass", path="//oradb.example.com:1521/mydb" }; if (r.severity = 0) then do; print 'NOTE: Caslib ' || caslib_name || ' ajoutée avec succès.'; end else do; print 'ERREUR: Échec de l''ajout de la caslib ' || caslib_name; print r; end; run; quit; /* --- BLOC 4 --- */ /* Démarrer une session CAS si ce n'est pas déjà fait */ options cashost="cloud.example.com" casport=5570; cas casauto; proc cas; session casauto; /* Création de données d'exemple pour simuler une table Oracle */ data mydata; input ID $ Name $ Value; datalines; 101 Apple 25 102 Banana 30 103 Orange 45 ; run; /* Supprimer la caslib si elle existe déjà */ simple.dropCaslib / caslib='orlib_ad'; /* Ajouter une caslib Oracle en utilisant un domaine d'authentification (authdomain) */ /* Note: L'authdomain 'oracle_auth' doit être préconfiguré sur le serveur CAS */ table.addCaslib result=r / caslib="orlib_ad", datasource={ srctype="oracle", authdomain="oracle_auth", /* Utilise un domaine d'authentification Viya */ path="//oradb.example.com:1521/mydb" }; print r; /* Si la caslib a été ajoutée avec succès, tenter de charger une table */ if (r.severity = 0) then do; /* Simuler une table existante dans Oracle en créant une table temporaire CAS */ data casuser.my_oracle_table; set mydata; run; /* Charger une table depuis la caslib Oracle (simulée) vers la mémoire CAS */ table.loadtable result=lr / caslib="orlib_ad", path="MY_ORACLE_TABLE", /* Nom de la table dans la base de données Oracle */ casout={ name="my_cas_table", replace=TRUE }; print lr; /* Afficher les 5 premières lignes de la table chargée */ table.fetch casout.my_cas_table / to=5; end; /* Nettoyage: Supprimer la table chargée et la caslib */ table.droptable / caslib='casuser' name='my_cas_table'; simple.dropCaslib / caslib='orlib_ad'; run; quit;