Fermer

août 23, 2018

Utiliser PostgreSQL pour masser des données pour Siebel EIM


Récemment, j'avais besoin d'un client Siebel Clinical Trial Management System (CTMS) pour charger des données dans la base de données, clairement sous la responsabilité de Siebel Enterprise Integration Manager (EIM). Le client m'a envoyé les données dans une feuille de calcul, et cela ressemblait à ceci:

Site_Number Contact_ID Role
800,1,300,500 1-2ASW Pharmacien
6, 7,2 1-4RSW Doctor
1,2,4,6,7,8 1-5E33 CRA de tête

Pour utiliser SQL Loader données dans les tables EIM (dans une base de données Oracle), j'avais besoin de masser les données dans un formulaire qui ressemble à ceci:

Site_Number Contact_ID Role
800 1-2ASW [19659004] Pharmacien
1 1-2ASW pharmacien
300 1-2ASW pharmacien
500 1-2ASW pharmacien
6 [19659003] 1-4RSW Docteur
7 1-4RSW Docteur
2 1-4RSW Docteur
6,7,2 1-4RSW Doctor
1 1-5E33 CRA de référence
2 1-5E33 CRA de référence
4 1-5E33 [1 9659004] CRA en chef
6 1-5E33 CRA en chef
7 1-5E33 CRA en chef
8 1-5E33 ARC principale [19659014] Mais comment puis-je le faire? Entrez open source PostgreSQL 10!

La première étape consiste à enregistrer le fichier Excel en tant que fichier CSV.

La deuxième étape consiste à lancer cette instruction dans PostgreSQL:

CREATE FOREIGN TABLE aft_staging

Contact_id text,

Role text)

Server pglog

OPTIONS (nom de fichier '/Users/reneschmidt/inputfile.csv', format 'csv', en-tête 'true');

me faire des instructions SQL à partir de PostgreSQL en utilisant des données qui sont un fichier externe. Ainsi, par exemple, je peux émettre cette commande; select * from customer_staging:

L'étape suivante consiste à utiliser la fonction super pratique pour transformer les données:

select contact_id, person_role, ltrim (unnest (string_to_array ( site_number, ','))) from customer_staging;

La dernière étape consiste à exporter les données. Je l'ai fait en lançant cette commande:

copy (sélectionnez contact_id, person_role, ltrim (unnest (string_to_array (site_number, ','))) site de customer_staging) TO '/Users/reneschmidt/outputfile.csv WITH WITH FORMAT CSV);

L'ouverture du fichier montre ceci:




Source link