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

Spring Java Discussion :

StoredProcedure avec Out Parameter Index-by table


Sujet :

Spring Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 113
    Par défaut StoredProcedure avec Out Parameter Index-by table
    Bonjour,

    J'essaie d'appeler avec Spring une procédure stockée dont les paramètres de sorties sont des Index-by tables (définition ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Type Tab1 Is Table Of VarChar2 Index By Binary_Integer;
     
    /* Declaration des procedures */
    Procedure TEST(
       ParamIn1  In  VarChar2,
       T_ParamOut1  Out Tab1,
           );
    J'arrive à appeler cette procédure en JDBC sans passer par Spring via la code ci-dessous :

    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
    // Stored procedure call
    		try {
    			Class.forName("oracle.jdbc.driver.OracleDriver");
     
    			Connection con = DriverManager.getConnection(
    					"jdbc:oracle:thin:@127.0.0.1:1521:DEV9I", "******",
    					"******");
     
    			String command = "{call Toto.TEST(?,?)}";
     
    			OracleCallableStatement cstmt = (OracleCallableStatement) con.prepareCall(command);
     
    			cstmt.setString(1, "test");
    			cstmt.registerIndexTableOutParameter(2, 100, Types.VARCHAR, 250);
    			cstmt.execute();
     
    		} catch (Exception e) {
    		}
    J'essaie maintenant d'appeler cette procédure en passant par Spring mais je ne vois pas comment déclarer le paramètre de sortie.

    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
    public class TESTStoredProcedureImpl extends StoredProcedure {
    	private static final String STORED_PROC_NAME = "Toto.TEST";
     
    public TESTStoredProcedureImpl(DataSource ds) {
            super(ds, STORED_PROC_NAME);
            declareParameter(new SqlParameter("ParamIn1", Types.VARCHAR));
     
            /* ????????  */
     
            compile();
        }
     
    [...]
     
    }
    Pouvez-vous m'aider sur ce point svp ? Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 113
    Par défaut
    J'ai fait plusieurs tests dont un qui m'a l'air plus pertinent que les autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public TESTStoredProcedureImpl(DataSource ds) {
            super(ds, STORED_PROC_NAME);
            declareParameter(new SqlParameter("ParamIn1", Types.VARCHAR));
            
            declareParameter(new SqlOutParameter("T_ParamOut1", OracleTypes.PLSQL_INDEX_TABLE));
     
            compile();
    }
    Le compile() passe bien mais je me retrouve avec une SQLException lors de l'éxecution de la procédure :
    Paramètre IN ou OUT absent dans l'index :: 2

    Pouvez vous me dire si je suis sur la bonne voie svp ? Merci.

Discussions similaires

  1. [2008R2] Suppression lente pour table avec de nombreux index
    Par Boubou2020 dans le forum Administration
    Réponses: 2
    Dernier message: 15/04/2015, 16h44
  2. Réponses: 2
    Dernier message: 24/08/2012, 14h20
  3. SQL SERVER 2005 - SSIS - time out et index de tables
    Par Negaton dans le forum Développement
    Réponses: 7
    Dernier message: 30/06/2010, 10h33
  4. Réponses: 3
    Dernier message: 24/02/2009, 21h26
  5. Création d'index sur tables avec 400000 rows
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/07/2007, 13h53

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