/****************************************************************************** * Programme : SAS Viya & PostgreSQL : Optimisez vos transferts avec le Bulk Load (API COPY) * Reference : CONNEC63E6 * Source : https://www.wearecas.eu/en/sampleCode/CONNEC63E6 ******************************************************************************/ /* --- BLOC 1 --- */ /* Remplacez 'PGserver', 'user1', 'myPwd', 'PGdatabase' et 'myschema' par vos propres informations de connexion. */ caslib PostgreSQLcaslib desc='PostgreSQL Caslib' dataSource=(srctype='postgres', server='PGserver', username='user1', password='myPwd', database='PGdatabase', schema='myschema'); /* Pour vérifier la connexion et lister les tables si la caslib est active */ proc casutil; list caslib=PostgreSQLcaslib; quit; /* --- BLOC 2 --- */ /* Créez d'abord la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */ /* Assurez-vous que la table 'myPGdata' existe dans votre base de données PostgreSQL. */ proc casutil; /* Charger la table 'myPGdata' de la caslib 'PostgreSQLcaslib' dans une nouvelle table CAS 'class_from_PostgreSQLcaslib' dans la caslib 'casuser'. */ /* Les identifiants spécifiés dans dataSourceOptions écraseront ceux définis dans la CASLIB. */ load casdata="myPGdata" incaslib="PostgreSQLcaslib" outcaslib="casuser" casout="class_from_PostgreSQLcaslib" replace dataSourceOptions=(username='user5', password='myNewPwd'); /* Lister les fichiers dans la caslib 'casuser' pour vérifier que la table a été chargée. */ list files incaslib="casuser"; /* Afficher les informations sur la structure de la table chargée. */ contents casdata="class_from_PostgreSQLcaslib" incaslib="casuser"; quit; /* --- BLOC 3 --- */ /* Création d'une table CAS avec des données de date/heure */ data casuser.timedata; input id d_timefmt : time16.6; format d_timefmt time16.6; datalines; 1 10:30:00.000000 2 14:45:30.123456 3 08:00:00.000000 ; run; /* Création de la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */ /* Assurez-vous d'avoir une caslib PostgreSQL configurée et active, par exemple 'PostgreSQLcaslib'. */ proc casutil; /* Enregistrez la table CAS 'timedata' vers PostgreSQL en utilisant le chargement en masse. */ /* Le paramètre dbtype assure le formatage correct de la colonne de temps. */ save casdata="timedata" incaslib="casuser" outcaslib="PostgreSQLcaslib" casout="PG_time_data" replace options={bulkload=true, dbtype="d_timefmt='time'"}; /* Vérifiez la nouvelle table dans PostgreSQLcaslib. */ list files incaslib="PostgreSQLcaslib"; quit; /* --- BLOC 4 --- */ /* Remplacez 'mydataenvironment.postgres.database.azure.com', 'mypgdata' et 'myschema' par vos propres informations. */ /* AUCUN 'username=' ou 'password=' n'est spécifié pour activer le SSO. */ caslib pgres_azure datasource=(srctype='postgres', server="mydataenvironment.postgres.database.azure.com", database=mypgdata, schema=myschema); /* Pour vérifier la connexion et lister les tables si la caslib est active */ proc casutil; list caslib=pgres_azure; quit;