4 pièce(s) jointe(s)
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.
Pièce jointe 285867Pièce jointe 285872Pièce jointe 285875Pièce jointe 285877
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