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 15/02/2011, 12h34   #1
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Par défaut Talend Procédure stockée

Bonjour tout le monde,

J'ai un problème avec lequel je galère depuis 3 jours et demi !!

En fait je crée un JOB qui va exécuter une procédure Stockée Oracle (schéma en pièces jointes)

Voici par procédure stockée :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
PACKAGE PRETRAITEMENT_EOD
IS
   v_date   DATE;
 
   FUNCTION GetLastExeDate (p_date VARCHAR2, p_entite VARCHAR2)
      RETURN BOOLEAN;
 
   FUNCTION j_1_ouvre (p_date IN DATE)
      RETURN DATE;
 
   FUNCTION ajouterUn (t IN number)
      RETURN number;
END;
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
 
   FUNCTION getlastexedate (p_date VARCHAR2, p_entite VARCHAR2)
      RETURN BOOLEAN
   IS
      v_date     DATE;
      p_date_1   DATE;
   BEGIN
 
      SELECT MAX (ap.date)
        INTO v_date
        FROM t1 ap, t2 ae
       WHERE ap.id = ae.ID
         AND ae.v1= p_c2
         AND ap.c3 IN (2, 3, 4);
 
      p_date_1 := j_1_ouvre (to_date(p_date,'dd/mm/yyyy'));
 
      IF p_date_1 = v_date
      THEN
         RETURN TRUE;
      END IF;
 
      RETURN FALSE;
   EXCEPTION
      WHEN OTHERS
      THEN
         raise_application_error (-20001,
                                     'An error was encountered - '
                                  || SQLCODE
                                  || ' -ERROR- '
                                  || SQLERRM
                                 );
   END;
L'erreur affiché par Talend est la suivante :

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
Démarrage du job preTraitementEOD a 11:20 15/02/2011.
 
[statistics] connecting TO socket ON port 3727
[statistics] connected
Exception IN component tOracleSP_2
java.sql.SQLException: Type de colonne non valide: 16
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:269)
    at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3500)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:122)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:271)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:362)
    at oracle.jdbc.driver.OracleCallableStatementWrapper.registerOutParameter(OracleCallableStatementWrapper.java:1340)
    at ws.pretraitementeod_0_1.preTraitementEOD.tFixedFlowInput_1Process(preTraitementEOD.java:1823)
    at ws.pretraitementeod_0_1.preTraitementEOD.tOracleConnection_1Process(preTraitementEOD.java:612)
    at ws.pretraitementeod_0_1.preTraitementEOD.tMsgBox_2Process(preTraitementEOD.java:497)
    at ws.pretraitementeod_0_1.preTraitementEOD.tMsgBox_1Process(preTraitementEOD.java:405)
    at ws.pretraitementeod_0_1.preTraitementEOD.runJobInTOS(preTraitementEOD.java:2242)
    at ws.pretraitementeod_0_1.preTraitementEOD.main(preTraitementEOD.java:2087)
[statistics] disconnected
Job preTraitementEOD terminé à 11:20 15/02/2011. [Code sortie=1]
Si je change ma procédure stockée et j'utilise celle là ( en modifiant les schémas biensur ) mon job marche.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FUNCTION ajouterUn (t IN number)
      RETURN number
      IS
      BEGIN
        RETURN  t + 1;
        EXCEPTION
      WHEN OTHERS
      THEN
         raise_application_error (-20001,
                                     'An error was encountered - '
                                  || SQLCODE
                                  || ' -ERROR- '
                                  || SQLERRM
                                 );
      END;
Merci beaucoup par avance.
Images attachées
Type de fichier : jpg Sans titre.jpg (24,8 Ko, 13 affichages)
Type de fichier : jpg Sans titre 2.jpg (40,5 Ko, 11 affichages)
Type de fichier : jpg Sans titre 3.jpg (53,9 Ko, 8 affichages)
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h56   #2
atb
Membre chevronné
 
Homme
Inscription : novembre 2004
Messages : 569
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Autre

Informations forums :
Inscription : novembre 2004
Messages : 569
Points : 696
Points : 696
Bonjour,

Je n'ai jamais utilisé ce composant. Mais au niveau de passage des paramètres. Il faudrait peut être rajouter le paramètre de retour et le positionner à OUT. (deuxième capture d'écran). Donc tu auras deux IN et un OUT.

Sinon c'est peut être le type boolean qui le gène, essaye avec retour de type int et non pas boolean. Il me semble que le boolean n'existe que dans le pl/SQL...
atb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/02/2011, 11h45   #3
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Bonjour,

En effet tu as raison, c'est le type Boolean qui pose problème.

Merci beaucoup pour tes réponses,

Un bon tag s'impose ... grâce à atb
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse 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 10h55.


 
 
 
 
Partenaires

Hébergement Web