L'appel de procédure stockée Oracle à partir de C#?
Comment appeler une procédure stockée oracle à partir de C#?
- Vous pouvez poster la procédure stockée? Les bibliothèques que vous utilisez pour vous connecter à la DB? ADO.NET? Un ORM (nHibernate, EF)? Vous avez besoin de fournir beaucoup plus de détails si vous voulez une réponse qui correspond à vos besoins.
- Si vous vous attendez à un Oracle réponse, veuillez marquer votre question Oracle. Merci!!!!
- J'ai utilisé la base de requêtes SQL avant. Cependant, maintenant, je voulais appeler Oracle Procédures déjà écrit, en utilisant le code C#.
Vous devez vous connecter pour publier un commentaire.
Veuillez visiter ce site ODP mis en place par oracle pour Microsoft OracleClient Développeurs:
http://www.oracle.com/technetwork/topics/dotnet/index-085703.html
Aussi ci-dessous est un exemple de code que l'on peut obtenir vous avez commencé à appeler une procédure stockée à partir de C# pour Oracle. PKG_COLLECTION.CSP_COLLECTION_HDR_SELECT est la procédure stockée construit sur Oracle accepter des paramètres PUNIT, POFFICE, PRECEIPT_NBR et renvoie le résultat dans T_CURSOR.
InitialLONGFetchSize = 1000
préféré? À partir de la documentationDefault = 0. Setting this property to 0 defers the LONG and LONG RAW data retrieval entirely until the application specifically requests it.
J'ai maintenant les étapes nécessaires à la procédure d'appel à partir de C#
Espère que cette aide
OracleDataAdapter da = new OracleDataAdatper(cmd);
est? Est-ce de ligne requis?C'est essentiellement le même mécanisme que pour un non de la commande de requête avec:
procédure stockée
=
CommandType.StoredProcedure
Il y a beaucoup d'exemples, le premier retournés par Google est cette une
Il y a aussi un petit piège, vous pourriez tomber dans, si votre SP est une fonction, votre paramètre de valeur de retour doit être le premier dans la collection de paramètres
Ce Code fonctionne bien pour moi, l'appel de procédure stockée oracle
Ajouter des références en cliquant droit sur le nom de votre projet dans l'explorateur de solutions >Ajouter une Référence >.Net puis Ajouter des espaces de noms.
puis collez ce code dans le Gestionnaire d'événement
Et sa Fait...amusez-vous bien avec C#
De la connexion à Oracle, c'est moche. Voici quelques nettoyeur de code avec l'aide d'instruction. Beaucoup d'autres échantillons de ne pas appeler le IDisposable Méthodes sur les objets qu'ils créent.
Dans .Net grâce à la version 4 ce qui peut être fait de la même manière que pour SQL Server Stockées Procs, mais notez que vous avez besoin de:
Il y a certaines exigences en matière de système ici que vous devriez vérifier sont OK dans votre scénario.
Microsoft est la dépréciation de cet espace de noms que de .Net 4 afin de tiers fournisseurs seront nécessaires dans l'avenir. Avec cela à l'esprit, vous pouvez être mieux à l'aide de Oracle Data Provider for .Net (ODP.NET) à partir de la parole vont - cela a optimisations qui ne sont pas dans le Microsoft classes. Il y a d'autres options tierces, mais Oracle a un fort intérêt à garder .Net développeurs pour leur devrait être bon.
Au lieu de
Vous pouvez également utiliser cette syntaxe:
Remarque, si vous définissez
cmd.BindByName = False
(qui est la valeur par défaut), alors vous devez ajouter les paramètres dans le même ordre qu'ils sont écrits dans votre chaîne de commande, les noms réels ne sont pas pertinents. Pourcmd.BindByName = True
le paramètre noms de match, l'ordre n'a pas d'importance.Dans le cas d'un appel de fonction, la chaîne de commande serait comme ceci: