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 :

Récupérer les "messages" / "affichages" produits par une procédure oracle


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut Récupérer les "messages" / "affichages" produits par une procédure oracle
    Bonjour
    j'execute une procédure oracle avec tOracleSP

    celle ci affiche des informations, exemple :
    Démarrage de IMPORT_CANDIDAT...

    Nombre de candidats présentés : 640 Candidats
    Nombre de candidats insérés : 640 Candidats
    Fin de IMPORT_CANDIDAT.


    Comment faire pour récupérer l'affichage d'une procédure oracle dans mon job ... pour me l'envoyer par mail par exemple ensuite ...
    Merci à vous pour votre aide
    Eric

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Tu peux faire suivre ton élément Oracle par un tFlowToIterate, puis un tJava (avec un lien Iterate, pour créer des logs ou faire un potentiel traitement) et , avec un lien OnSubjobOK (sinon, tu auras un mail par iteration...), appeler un élément tSendMail ou tSendMailGeneric.
    A tester, je t'avoue que je ne suis pas aller jusqu'au bout.
    Cdt,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Merci j'ai réussi grâce à un tjava effectivement.

    Comme j'en ai un peu ch... je mets mon code ici il servira peut-être à quelqu'un.
    je fais un tOracleConnexion puis l'exécution du tjava :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    System.out.println("début");
     
     
    java.sql.Connection conn =( java.sql.Connection )globalMap.get("conn_tOracleConnection_1");
    System.out.println(conn);
     
     
    java.sql.Statement stmt = conn.createStatement();
     
     
     
    CallableStatement enable_stmt;
    CallableStatement disable_stmt;
    CallableStatement show_stmt;
     
    enable_stmt = conn.prepareCall( "begin dbms_output.enable(:1); end;" );
    disable_stmt = conn.prepareCall( "begin dbms_output.disable; end;" );
     
    show_stmt = conn.prepareCall(
    "declare " +
    " l_line varchar2(255); " +
    " l_done number; " +
    " l_buffer long; " +
    "begin " +
    " loop " +
    " exit when length(l_buffer)+255 > :maxbytes OR l_done = 1; " +
    " dbms_output.get_line( l_line, l_done ); " +
    " l_buffer := l_buffer || l_line || chr(10); " +
    " end loop; " +
    " :done := l_done; " +
    " :buffer := l_buffer; " +
    "end;" );
     
    enable_stmt.setInt( 1, 1000000 );
    enable_stmt.executeUpdate();
     
     
    stmt.execute
    ( "begin IMPORT_CANDIDAT('CANDIDAT');end;" );
    stmt.close();
     
     
    int done = 0;
     
    show_stmt.registerOutParameter( 2, java.sql.Types.INTEGER );
    show_stmt.registerOutParameter( 3, java.sql.Types.VARCHAR );
     
    for(;;)
    {
    show_stmt.setInt( 1, 32000 );
    show_stmt.executeUpdate();
    System.out.print( show_stmt.getString(3) );
     
    int pos = show_stmt.getString(3).indexOf("error");
    if (pos != -1)
    	throw new Exception("Erreur dans l'execution de la procedure d'import");
     
    if ( (done = show_stmt.getInt(2)) == 1 ) break;
    }
     
     
     
    enable_stmt.close();
    disable_stmt.close();
    show_stmt.close();
    conn.close();

Discussions similaires

  1. [Flash Pascal] Animation produite par une procédure récursive
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 13
    Dernier message: 20/12/2012, 07h04
  2. Récupérer le message de sortie d'une procédure stockée
    Par akkeri dans le forum Développement
    Réponses: 2
    Dernier message: 10/03/2009, 07h45
  3. Réponses: 2
    Dernier message: 22/12/2008, 09h58
  4. Hook pour récupérer les messages windows d'une autre application
    Par Tuizi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/12/2007, 15h30
  5. Réponses: 10
    Dernier message: 02/04/2007, 10h42

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