IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Incomprhensions liées à Oracle sous Talend


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Points : 52
    Points
    52
    Par défaut Incomprhensions liées à Oracle sous Talend
    Bonjour, dans le cadre d'un travail professionnel, je suis passé sous peu à Talend. Cet ETL est très puissant et convivial mais je n'arrive pas à comprendre le fonctionnement de certains jobs sous Talend Open Studio 3.0 en java.

    Lorsque j'utilise tOracleConnection pour éviter de configurer la connexion dans chaque tâches liées à Oracle. Si j'utilise Gess Schema, Gess Query ou que j'appuie sur le bouton édition de la requête, on me demande de saisir absolument tout les paramètres de connection sauf le port pour finir sur un message d'erreur de saisie au sujet de la configuration alors que j'ai tout bien saisi.

    Même si j'utilise pas tOracleConnection, si j'utilise tOracleInput ou tOracleOutput et que j'ai rempli correctement le schema en appuyant sur Gess Query ou l'inverse, Talend me dit qu'il ne peut pas se connecter à la Base de Donnée ou que la requête ne peut être gérée par Talend. Or c'est un stupide SELECT X,Y FROM Z. Donc je suis obligé de tout faire à la main et ça fonctionne quand même. Cependant c'est extrêmement long de faire cela pour certaines tables.

    Et pour finir la chose la plus énervante. Lorsque je fais une requête SQL dans tOracleInput je ne peux pas mettre dans une clause WHERE une condition numérique du genre:WHERE X=3,je ne peux pas utiliser dans la requête des fonctions de formatage comme TO_DATE, je en peux pas utiliser les fonctions mathématiques comme ABS, et pire je ne peux pas faire des fonctions comme MIN, MAX avec des GROUP BY et des HAVING.
    En clair je peux juste faire un basique SELECT. Les éléments/fonctions cités sont écrits en rouge de même que les parenthèses malgré que Talend ne détecte aucune erreur, et réussit à retourner un résultat lorsqu'on appuie sur le bouton Run SQL dans l'éditeur SQL de tOracleInput. On me retourne à chaque fois une erreur oracle:caractère inconu.

    Or lorsque je fais ces requêtes sous Toad (outil oracle) les requêtes se lancent parfaitement et me donnent un résultat.

    Je sais que la tâche tAggregateRow permet de faire des fonctions de groupe mais dans certains cas cela ne me retourne pas les résultats voulus. Par exemple si je veux récupérer des enregistrement où l'ID est égale à l'ID le plus élevé pour chaque client, cette tâche est inutile.

    Ma version d'Oracle est 9.2.0.6, si c'est utile.

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Points : 52
    Points
    52
    Par défaut
    Bon j'ai résolu ces problèmes.
    Dans les requêtes SQL il fallait enlevé le ;.
    Et pour la connexion automatisée j'ai préféré faire des metadonnées au lieu de faire tOracleConnection.

    Par contre avant de mettre en résolu, je voudrais savoir comment on peut dans un Tmap, d'éviter d'avoir une erreur java du type NullPointer au sujet d'une variable qui fait la somme de différents champs non nuls d'une table qui peut donner lieu à une erreur inner join.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Je réagis à ton post car je rencontre les mêmes difficultés, et surtout sur la fonction TO_DATE dans la clause WHERE.

    J'ai bien vérifier et je n'ai pas de ; à la fin de mes requêtes ?

    Le plus gênant c'est l'impossibilité de faire TO_DATE('01/02/2008','DD/MM/YYYY')

    Par quel moyen vous vous en êtes sortie ?
    Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore"

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 20
    Points : 20
    Points
    20
    Par défaut
    Bonjour,


    Citation Envoyé par omegabahamut
    savoir comment on peut dans un Tmap, d'éviter d'avoir une erreur java du type NullPointer
    On peut ajouter un filtre au niveau des tables de sortie du tMap afin de rejeter des enregistrements:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !Relational.ISNULL(row1.monChamp)
    Sinon j'utilise un "context group" pour stocker les paramètres de connexions avec différents "context" selon que je travail sur la base de test ou de production par exemple.

    Concernant les métadonnées je m'en sert juste pour la structure des tables. Et pour ne pas tout avoir à repréciser pour chaque tOracleConnection, les copié/collé d'un job à un autre d'un composant marche très bien .

    Je n'utilise pas "Guess Query" d'un tOracleInput, je récupère directement la table dans les métadonnées du repository ou je tape ma propre requête à la main sans passer par l'éditeur.


    Akrylik

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sequence oracle sous talend
    Par NFHnv dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 14/02/2013, 11h21
  2. Transformation Excel vers Oracle sous talend
    Par karnass dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 18/12/2012, 13h50
  3. Exécuter une procédure stockée PL/SQL Oracle sous Talend
    Par robinson50 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 03/11/2008, 10h51
  4. Client Oracle sous Windows
    Par linou dans le forum Oracle
    Réponses: 4
    Dernier message: 11/05/2005, 15h31
  5. Services Oracle sous Windows
    Par marsup54 dans le forum Oracle
    Réponses: 21
    Dernier message: 26/05/2004, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo