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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire Décisionnelle
    Inscrit en
    juillet 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire Décisionnelle
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2019
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Truncate table et insérer dans la table des données issues d'une vue

    Bonjour,

    je travaille actuellement sous Talend 7.1.1 ESB et j'ai besoin de créer un JOB qui permet:
    1 : de récupérer l'ID max de ma table (Fait) puis on l'incrément (Comment faire un incrémentation?),
    2 : ensuite je dois TRUNCATE ma table (ERREUR: Exception in component tDBOutput_1 (ODS_TEMPF_PROGRAMMES_TRUNCATE)
    java.sql.SQLSyntaxErrorException: ORA-00942: Table ou vue inexistante). Voici mon schéma concernant cette partie: Nom : TruncatetDBOutput.PNG
Affichages : 40
Taille : 22,8 KoNom : Truncate.PNG
Affichages : 34
Taille : 14,2 Ko
    3 : ensuite je dois insérer chaque ligne de la Vue dans ma table qui a été vidée, je pensais pour cela utiliser les composants suivants le tDBOutput de ma table qui a été vidée, reliée à un tMap relié à ma Vue et en sortie l'insertion dans ma table.

    J'ai un soucis pour la partie 2, Exception in component tDBOutput_1 (Copy_of_ODS_TEMPF_PROGRAMMES_TRUNCATE)
    java.lang.RuntimeException: For delete, the schema must have a key
    , j'ai dois donc surement avoir un problème avec les paramètres de mon tDBOutput.

    J'ai créé dans un premier temps un JOB (comme joint en image) qui est censé seulement tronquer ma table car c'est pour le moment je butte seulement sur cette partie.

    Merci d'avance pour toute aide qui sera la bienvenue !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2013
    Messages : 21
    Points : 33
    Points
    33

    Par défaut

    Bonjour,

    Je vais donner mon point de vue point par point :

    1) Essaie de regarder du coté des variables globales ou bien du coté de la fonction Numeric.sequence()

    2) ODS_TEMPF_PROGRAMMES_TRUNCATE , selon le message d'erreur, tu utilises cette table ci, existe-elle ?

    3) Si j'ai bien compris, tu veux récupérer tes données dans une table, les tronquer, puis les reinjecter dans cette même table. Est ce que c'est ça ?

    Si oui, je ne sais pas si tu peux mener l'action sur la table "Vider la table" puis faire un UPDATE, tu veux mettre à jour des données que tu supprimes avant, c'est un peu bizarre. Si je devais faire ça, je passerai par un Buffer en job Talend, puis je supprime les données dans la table, puis j'injecte, en virant l'autocommit lors de la suppression et puis je fais mon commit qu'à la fin de toutes les injections.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire Décisionnelle
    Inscrit en
    juillet 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire Décisionnelle
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2019
    Messages : 43
    Points : 0
    Points
    0

    Par défaut

    C'était juste une basique erreur de SQL comme écrit dans mon erreur : j'ai écrit " server_myTable " au lieu de " server.myTabe " …

    Je clos le sujet.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire Décisionnelle
    Inscrit en
    juillet 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire Décisionnelle
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2019
    Messages : 43
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par fulcho Voir le message
    Bonjour,

    Je vais donner mon point de vue point par point :

    1) Essaie de regarder du coté des variables globales ou bien du coté de la fonction Numeric.sequence()

    2) ODS_TEMPF_PROGRAMMES_TRUNCATE , selon le message d'erreur, tu utilises cette table ci, existe-elle ?

    3) Si j'ai bien compris, tu veux récupérer tes données dans une table, les tronquer, puis les reinjecter dans cette même table. Est ce que c'est ça ?

    Si oui, je ne sais pas si tu peux mener l'action sur la table "Vider la table" puis faire un UPDATE, tu veux mettre à jour des données que tu supprimes avant, c'est un peu bizarre. Si je devais faire ça, je passerai par un Buffer en job Talend, puis je supprime les données dans la table, puis j'injecte, en virant l'autocommit lors de la suppression et puis je fais mon commit qu'à la fin de toutes les injections.

    En faite c'est un Job déjà existant sur Genio que je doit transférer sous Talend. Je dois refaire le Job comme il est, donc récupérer l'ID_max -> vider la table -> insérer dans la table les données issues d'une vue.

    L'erreur venait juste (comme souvent d'une erreur de syntaxe/chemin) d'un . que j'aurai du mettre au lieu d'un _ …

    Peut-être tu peux me donner un conseil sur quel composant utiliser pour faire mon TRUNCATE, sachant qu'en faite je dois utiliser une procédure stocker afin de vider ma table (pour une question de droit).

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2013
    Messages : 21
    Points : 33
    Points
    33

    Par défaut

    Je ne sais pas ce que tu veux faire exactement, mais tu as une Action sur la table "tronquer la table", ça peut peut-être t'aider ?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire Décisionnelle
    Inscrit en
    juillet 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire Décisionnelle
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2019
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Truncate via Procedure Stockée

    Citation Envoyé par fulcho Voir le message
    Je ne sais pas ce que tu veux faire exactement, mais tu as une Action sur la table "tronquer la table", ça peut peut-être t'aider ?
    Non justement je n'ai pas les droits d'effectuer un TRUNCATE, je suis obligé de passé par un autre table "SYS" qui possède elle des procédures et notamment la procédure pour effectuer un TRUNCATE. Je pense que je vais utiliser un tOracleSP mais il y a peu de doc et d'exemple sur son fonctionnement. Je ne vois pas ou je dois mettre le nom de mon paramètre.
    Les paramètre de mon TDBSP ressemble à ça :
    Nom : ProcedureStockee.PNG
Affichages : 22
Taille : 13,8 Ko

    Nom : ProcedureStockeeParametre.PNG
Affichages : 22
Taille : 11,7 Ko

    Mais j'obtiens l'erreur :

    Exception in component tDBSP_1 (ODS_TEMPF_PROGRAMMES_TRUNCATE)
    java.sql.SQLException: ORA-06550: Ligne 1, colonne 7 :
    PLS-00201: l'identificateur 'TABLE_NAME' doit être déclaré
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored



    Sachant que l'identificateur table_name est censé être mon paramètre dans la procédure.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire Décisionnelle
    Inscrit en
    juillet 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire Décisionnelle
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : juillet 2019
    Messages : 43
    Points : 0
    Points
    0

    Par défaut

    Alors j'ai finis par trouver la bonne méthode est :
    Nom : ProcedureStockeeDesigner.PNG
Affichages : 22
Taille : 10,2 Ko
    Nom : ProcedureStockee.PNG
Affichages : 21
Taille : 14,4 Ko
    Nom : ProcedureStockeeParametre.PNG
Affichages : 22
Taille : 10,1 Ko

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

Discussions similaires

  1. Convertir des données specifiques d'une vue en PDF?
    Par mymemorial dans le forum Zend
    Réponses: 0
    Dernier message: 12/05/2013, 17h59
  2. [WD-2003] Insérer sur un signet des données issues d'un champ de formulaire
    Par mca61 dans le forum VBA Word
    Réponses: 2
    Dernier message: 01/03/2011, 12h29
  3. Trier des données issues d'une formule
    Par jarault dans le forum Excel
    Réponses: 5
    Dernier message: 09/04/2008, 21h53
  4. Réponses: 4
    Dernier message: 30/03/2007, 10h10
  5. Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & MySQL
    Réponses: 2
    Dernier message: 18/12/2006, 17h03

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