Bonjour,
J'ai une procédure stockée...
...qui est exécutée dans du code .NET [VS2003] :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CREATE OR REPLACE PROCEDURE PS001_ENT01 (NBRECORD OUT INTEGER, ERRORH OUT BOOLEAN) IS (...)
Mon problème est que j'ai un message d'erreur quand j'exécute la procédure stockée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 (...) myOleDbCommand = New OleDbCommand("MONSCHEMA.PS001_ENT01", myOleDbConnection) myOleDbCommand.CommandType = CommandType.StoredProcedure myOleDbParameter = myOleDbCommand.Parameters.Add("NBRECORD", OleDbType.Integer) myOleDbParameter.Direction = ParameterDirection.Output myOleDbParameter = myOleDbCommand.Parameters.Add("ERRORH", OleDbType.Boolean) myOleDbParameter.Direction = ParameterDirection.Output (...)
5 - ORA-06550: Ligne 1, colonne 7 :
PLS-00306: numéro ou types d'arguments erronés dans appel à 'PS001_ENT01'
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
J'arrive pourtant à la lancer à la main dans Toad sans aucun souci.
Je pense qu'il n'aime pas le type OleDbType.Boolean... Mais pourtant, c'est bien un BOOLEAN que j'ai déclaré du côté d'Oracle.
Si je mets dans Oracle non pas BOOLEAN mais INTEGER, et OleDbType.Integer côté .NET, ça marche.
Pour dire que l'erreur vient bien du type de la valeur retournée.
Quelqu'un a une idée ?
Merci.
Partager