Lors de l'utilisation de l'option bulkload=true dans la procédure PROC CASUTIL pour sauvegarder des tables vers PostgreSQL, l'utilisation du paramètre dbtype au sein du dictionnaire options est impérative pour les données temporelles. Elle permet de mapper explicitement les formats SAS précis (comme time16.6) vers les types natifs PostgreSQL (comme time), évitant ainsi les troncatures ou les erreurs d'interprétation lors du transfert en masse.
Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) pour les tables CAS ou se connectent à une base de données PostgreSQL existante (avec des identifiants et des noms de serveur/base de données à remplacer par l'utilisateur).
| 1 | /* Remplacez 'PGserver', 'user1', 'myPwd', 'PGdatabase' et 'myschema' par vos propres informations de connexion. */ |
| 2 | caslib PostgreSQLcaslib desc='PostgreSQL Caslib' |
| 3 | dataSource=(srctype='postgres', |
| 4 | server='PGserver', |
| 5 | username='user1', |
| 6 | password='myPwd', |
| 7 | database='PGdatabase', |
| 8 | schema='myschema'); |
| 9 | |
| 10 | /* Pour vérifier la connexion et lister les tables si la caslib est active */ |
| 11 | PROC CASUTIL; |
| 12 | list caslib=PostgreSQLcaslib; |
| 13 | QUIT; |

| 1 | /* Créez d'abord la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */ |
| 2 | /* Assurez-vous que la table 'myPGdata' existe dans votre base de données PostgreSQL. */ |
| 3 | |
| 4 | PROC CASUTIL; |
| 5 | /* Charger la table 'myPGdata' de la caslib 'PostgreSQLcaslib' dans une nouvelle table CAS 'class_from_PostgreSQLcaslib' dans la caslib 'casuser'. */ |
| 6 | /* Les identifiants spécifiés dans dataSourceOptions écraseront ceux définis dans la CASLIB. */ |
| 7 | load casdata="myPGdata" incaslib="PostgreSQLcaslib" outcaslib="casuser" |
| 8 | casout="class_from_PostgreSQLcaslib" replace |
| 9 | dataSourceOptions=(username='user5', password='myNewPwd'); |
| 10 | |
| 11 | /* Lister les fichiers dans la caslib 'casuser' pour vérifier que la table a été chargée. */ |
| 12 | list files incaslib="casuser"; |
| 13 | |
| 14 | /* Afficher les informations sur la structure de la table chargée. */ |
| 15 | contents casdata="class_from_PostgreSQLcaslib" incaslib="casuser"; |
| 16 | QUIT; |

| 1 | /* Création d'une table CAS avec des données de date/heure */ |
| 2 | DATA casuser.timedata; |
| 3 | INPUT id d_timefmt : time16.6; |
| 4 | FORMAT d_timefmt time16.6; |
| 5 | DATALINES; |
| 6 | 1 10:30:00.000000 |
| 7 | 2 14:45:30.123456 |
| 8 | 3 08:00:00.000000 |
| 9 | ; |
| 10 | RUN; |
| 11 | |
| 12 | /* Création de la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */ |
| 13 | /* Assurez-vous d'avoir une caslib PostgreSQL configurée et active, par exemple 'PostgreSQLcaslib'. */ |
| 14 | |
| 15 | PROC CASUTIL; |
| 16 | /* Enregistrez la table CAS 'timedata' vers PostgreSQL en utilisant le chargement en masse. */ |
| 17 | /* Le paramètre dbtype assure le formatage correct de la colonne de temps. */ |
| 18 | save casdata="timedata" incaslib="casuser" |
| 19 | outcaslib="PostgreSQLcaslib" casout="PG_time_data" replace |
| 20 | options={bulkload=true, dbtype="d_timefmt='time'"}; |
| 21 | |
| 22 | /* Vérifiez la nouvelle table dans PostgreSQLcaslib. */ |
| 23 | list files incaslib="PostgreSQLcaslib"; |
| 24 | QUIT; |
| 1 | /* Remplacez 'mydataenvironment.postgres.database.azure.com', 'mypgdata' et 'myschema' par vos propres informations. */ |
| 2 | /* AUCUN 'username=' ou 'password=' n'est spécifié pour activer le SSO. */ |
| 3 | caslib pgres_azure datasource=(srctype='postgres', |
| 4 | server="mydataenvironment.postgres.database.azure.com", |
| 5 | database=mypgdata, |
| 6 | schema=myschema); |
| 7 | |
| 8 | /* Pour vérifier la connexion et lister les tables si la caslib est active */ |
| 9 | PROC CASUTIL; |
| 10 | list caslib=pgres_azure; |
| 11 | QUIT; |

FedSQL est une implémentation propriétaire de SAS de la norme ANSI SQL:1999, offrant un accès évo...
Ce document explique comment les moteurs SAS gèrent l'accès et le traitement des fichiers de donn...
Ce document décrit les bibliothèques SAS par défaut (Work, User, Sashelp, Sasuser) fournies par S...
Ce document décrit les caractéristiques des moteurs SAS, incluant un résumé des moteurs courammen...