Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 17h47   #1
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Select sur fonction de la BDD c'est possible ?

Bonjour,

J'aurais besoin de faire un select sur une fonction de ma BDD (Postgres 9.0). Cette fonction retourne une table.
Est-ce possible avec Talend ?

Sur un connexion BDD, il semble qu'on ne puisse récupérer que les tables, vues et synonymes.
D'autre part, j'ai essayé de définir une requête qui créer ma fonction puis fait le select. Dans l'éditeur de requête, je la test cela marche, mais comment l'utiliser ensuite dans le job talend ?

Merci d'avance pour votre aide,
Corinne
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h04   #2
Membre habitué
 
Homme Nicolas Vandenbergue
Conseil - Consultant en systèmes d'information
Inscription : janvier 2011
Messages : 88
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vandenbergue
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : janvier 2011
Messages : 88
Points : 112
Points : 112
Bonjour,

Citation:
j'ai essayé de définir une requête qui créer ma fonction puis fait le select. Dans l'éditeur de requête, je la test cela marche, mais comment l'utiliser ensuite dans le job talend ?
Pour ce point, tu peux exécuter la requête directement depuis un tPostgresqlRow.
NicolasTT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 11h43   #3
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Merci pour ta réponse.
J'ai testé ce que tu me conseille et j'ai des erreurs par rapport à mes champs de table issus de ma requête qui ne semblent pas reconnus.

J'ai glissé ma requête et ainsi créé un tPostgresRow :
- Schéma: Built-in
- Editer le schéma : liste des champs retournés par ma fonction
- Nom de table vide
- Type de requête : référentiel BdD Postgres - fn_risque

Voici un extrait de ma fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
CREATE OR REPLACE FUNCTION fn_risque(IN BOOLEAN)
  RETURNS TABLE (
	  niveau integer,
	  num_rt_nt character varying(3),
	  num_alea character varying(10),
	  num_risque character varying(10),
	  n_alea integer,
	  c_alea character varying(14),
	  c_departement character varying(3),
	  l_alea character varying(50),
	  l_alea_long character varying(200),
	  num_risque_jo integer
) 
AS
'
DECLARE 
...
    RISQUE_CURSOR cursor for
        select  a.n_alea AS v_n_alea, a.c_alea AS v_c_alea, a.c_departement AS v_c_departement,
		a.l_alea AS v_l_alea, a.l_alea_long AS v_l_alea_long, 
		a.num_risque_jo AS v_num_risque_jo
	from TOTO a;
...
OPEN RISQUE_CURSOR;
 
LOOP
	FETCH RISQUE_CURSOR INTO v_n_alea, v_c_alea, v_c_departement, v_l_alea, v_l_alea_long ,"+
" v_num_risque_jo;
	EXIT WHEN NOT FOUND;
...
RETURN QUERY select niveau, num_rt_nt, num_alea, num_risque,
		v_n_alea, v_c_alea, v_c_departement, v_l_alea, v_l_alea_long, v_num_risque_jo;
 
END LOOP;
CLOSE RISQUE_CURSOR;
 
ELSE
   RETURN ;
END IF;
END
 
'
LANGUAGE plpgsql;
 
SELECT fn_risque.* FROM fn_risque(true) fn_risque;
Lorsque je compile, j'ai autant d'erreur que de champs de retour pour ma fonction (soit 10) du type :
"niveau ne peut pas être résolu ou n'est pas un champ"

Avez-vous une idée pour corriger ce problème s'il vous plait ?

Merci d'avance,
Corinne
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h41   #4
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Utilisation d'une focntion retournant une table ?

Bonjour,

Comme je l'expliquais dans mon précédent post, je n'arrive pas à utiliser une fonction qui retourne une table.

J'ai trouvé le composant tFixedFlowInput qui permet de définir un scéma, mais si je relie ce composant à mon tPostgresRow (create + select de ma fonction), j'obtiens un ligne avec des valeurs null pour chacune de mes colonnes.
J'ai essayé de faire le select sur ma fonction dans la colonne valeur du composant tFixedFlow : impossible ! idem avec le composant tRowGenerator

Personne n'aurais une autre idée ?
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h41   #5
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Solution trouvée !

voir le post suivant :
http://www.developpez.net/forums/d11...-table-access/
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h49.


 
 
 
 
Partenaires

Hébergement Web