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 :

Procédure stockée et tableau


Sujet :

Développement de jobs

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Procédure stockée et tableau
    Bonjour,
    je recherche de l'aide concernant un problème rencontré régulièrement sur les différents forum Talend mais pour lequel je n'arrive pas à trouver de solution.
    J'ai une procédure stockée Oracle qui prend en paramètre IN un objet de type tableau de varchar2 :
    TYPE mon_tab IS array(1000000) of varchar2(1000)
    procedure ma_proc(i_data IN mon_tab, o_msg out varchar2)

    Je voudrais appeler cette procédure depuis un job Talend.
    J'ai une première partie de traitement qui transforme un flux d'entrée en tableau de String[] (dans le TJavaFlex).
    Puis j'envoie ce tableau dans un t_oracleSP avec comme paramètre IN le tableau de String.
    Nom : general.JPG
Affichages : 325
Taille : 24,7 KoNom : javaFlex.JPG
Affichages : 208
Taille : 65,9 KoNom : fixedInput.JPG
Affichages : 276
Taille : 74,6 KoNom : oracleSP.JPG
Affichages : 225
Taille : 56,9 Ko

    Lorsque j'exécute mon job, le tableau est bien créé mais lors de l'envoi à la procédure j'ai une erreur :
    Exception in component tOracleSP_1
    java.sql.SQLException: Type de colonne non valide
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7937)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7517)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8174)
    at oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:4094)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:230)
    at extractions.mon_job_0_1.mon_job.tFixedFlowInput_1Process(mon_job.java:1716)
    at extractions.mon_job_0_1.mon_job.tFileInputExcel_1Process(mon_job.java:1153)
    at extractions.mon_job_0_1.mon_job.tOracleConnection_1Process(mon_job.java:2029)
    at extractions.mon_job_0_1.mon_job.runJobInTOS(mon_job.java:2253)
    at extractions.mon_job_0_1.mon_job.main(mon_job.java:2083)


    Si quelqu'un a une idée de comment résoudre ce problème, je suis preneur ... Je sèche complètement....

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    C'est chaud ce que tu veux faire.

    Regarde ça https://stackoverflow.com/a/38737870

    Ta connexion tu dois pouvoir la récupérer depuis la globalMap.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci pour le lien je vais jeté un oeil.
    En attendant j'avais bidouillé un truc avec un CLOB mais si je peux faire plus propre avec ça ce serait cool.
    Je passe en résolu car de toute façon je n'aurai pas le temps de faire plus de recherche après.

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

Discussions similaires

  1. procédures stockées et tableau
    Par deborah95 dans le forum MySQL
    Réponses: 1
    Dernier message: 11/06/2009, 10h46
  2. Procédure stocké, un tableau de int en paramètre
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/06/2006, 11h44
  3. Réponses: 6
    Dernier message: 18/05/2005, 15h04
  4. Réponses: 7
    Dernier message: 14/02/2005, 11h40
  5. Passer un tableau à une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/09/2004, 19h21

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