2010-06-25 1 views
2

Im essayant d'appeler un proc Oracle stocké à partir d'une application C# en utilisant le code suivantexécution de procédures stockées Oracle utilisant ADO (C#)

Connection conn = new Connection(); 
Recordset rs = new Recordset(); 
conn.Open("Provider=MSDAORA;User Id=username;Password=password;Data Source=DB;", null, null, 0); ; 
rs.Open("sproc 'abc', 'xyz'", conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, -1); 

abc et xyz sont des paramètres d'entrée ..

Cependant, Je reçois une "exception d'instruction SQL non valide" lorsque j'essaie de l'exécuter.

Existe-t-il un autre moyen d'exécuter un proc stocké par Oracle? Je peux exécuter MSSQL ou stockées procs normales requêtes Oracle de la même manière décrite ci-dessus ..

J'ai même essayé d'utiliser CreateParameter, mais cela n'a pas aidé non plus

Merci, Sam

Répondre

1

Prenez le Oracle outils ODP.Net: http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

Ils sont ce que j'utiliser pour interagir avec notre base de données Oracle à partir de mon application ASP.NET

Check here pour un exemple de appeler une procédure stockée Oracle en C#.

En fait, avec le paquet:

// Create oracle command object for the stored procedure 
OracleCommand cmd = new OracleCommand("HR_DATA.GETCURSORS", conn); 
cmd.CommandType = CommandType.StoredProcedure; 

// Enter a parameter for the procedure 
OracleParameter dep_id = new OracleParameter(); 
dep_id.OracleDbType = OracleDbType.Decimal; 
dep_id.Direction = ParameterDirection.Input; 
dep_id.Value = 60; 
cmd.Parameters.Add(dep_id); 

// Add more parameters ... 

// Execute the stored procedure 

Here's a link to the API documentation

+0

+1. Microsoft a désapprouvé leurs propres pilotes Oracle et recommande d'utiliser Oracle ODP.NET. –

0

.. Apparemment, je de Nevermind était entre parenthèses manque autour des paramètres d'entrée ...

Merci, Sam

Questions connexes