L'appel du package Oracle des procédures de retour ref curseurs à droite PL/SQL
J'ai une base de données Oracle 10g, qui est accessible à partir d'un ASP.NET application. Bien que j'ai utilisé SQL Server fortement dans de nombreux aspects différents et Oracle pour l'interrogation et de reporting, c'est ma première fois à l'aide d'Oracle comme base de données OLTP pour une application.
La base de données au niveau des procédures dans les colis sont généralement de la forme:
-- TYPE refcur IS REF CURSOR;
PROCEDURE get_some_stuff(o_cursor OUT refcur, p_param1 IN INTEGER, p_param2 IN INTEGER) IS
BEGIN
OPEN o_cursor FOR
SELECT whatever
FROM whatever
END
Je suppose que ces sont faites de cette façon pour le bénéfice de la ADO.NET couche en mesure d'utiliser le curseur de la sortie param et c'est ma compréhension que c'est acceptable de meilleures pratiques pour l'appel d'Oracle procs de .NET.
Dans SQL Server, par exemple, nous n'avons pas explicite ref curseurs, si un proc retourne un jeu de résultats (ou plusieurs ensembles de résultats), c'est accessible comme un jeu de résultats de sortie dans les deux ADO.NET et SSMS, et vous pouvez tout simplement tester le SPs en faisant EXEC spname param1, param2
.
Le problème que je rencontre est que je ne sais pas comment les appeler directement en SQL en Crapaud, par exemple, pour être en mesure de tester les modifications en PL/SQL niveau tout d'abord, avant d'aller à l'app. Je suis très utilisé pour être en mesure d'exercer et même re-mix stockées proc et les fonctions de SQL Server pour être en mesure de revoir la base de données de la couche d'interface sans affecter l'interface externe au niveau de l'application du code.
Les poneys C'est toujours facile de trouver des exemples seulement après que vous avez renoncé à la recherche... Semble que j'ai besoin d'une nouvelle Crapaud, si.
Qu'est-Crapaud ne vous laissera pas utiliser un anonyme PLSQL bloc?! J'ai seulement utilisé Toad pour SQL Server, PLSQLDeveloper (version gratuite) pour moi, lorsque l'on traite avec Oracle =)
Poneys - Un bug dans la version 10.1, selon heather.koyuk.net/refractions/?p=343 je l'ai mis sur 10.5 et ça fonctionne.
Pensé que quelque chose était bizarre pour le Crapaud de ne pas supporter quelque chose de si commun dans Oracle. Mauvais QA sur Toad pour Oracle de la partie :/
OriginalL'auteur Cade Roux | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
regarder le lien que OMG Poneys posté, mais ce que vous pouvez faire est de
vous avez à peu près juste de l'envelopper dans un bloc anonyme ad, il sera exécuté. J'utilise SQL Developer (fortement recommander, gratuit avec beaucoup de soutien) ou SQL plus donc je ne peut pas aider à CRAPAUD, mais je m'attends à ce qu'il soit le même. Dans SQL Developer (et en SQL Navigator, si ma mémoire est correcte), vous pouvez simplement cliquer-droit sur le package/méthode que vous souhaitez et il va créer le script pour vous.
en crapaud et le navigateur, je crois que vous pouvez être en mesure d'obtenir la ref curseur dans une jolie grille, tandis que développeur, vous l'obtenez dans le texte.
SQL Developer, vous pouvez unité de test
OriginalL'auteur Harrison
Essayez ceci:
De partager et de profiter.
OriginalL'auteur Bob Jarvis
Meilleure solution a été trouvée dans le lien qui OMG Poneys fournis:
Méthode la plus simple pour tester une Procédure Stockée Oracle
et ici:
http://heather.koyuk.net/refractions/?p=343
OriginalL'auteur Cade Roux
J'ai trouvé un moyen plus facile de faire cela ...l'essayer (Cela permettra également de générer un script pour vous)
Dans la Procédure de l'Éditeur, de la charge de votre procédure. Cliquez sur l'éclair
boulon à exécuter et vous permettra de voir l'Ensemble des Paramètres de la fenêtre, qui est
également disponible via le bouton sur le Proc de l'Éditeur de barre d'outils qui a un
image similaire à ( ... ), à côté de l'éclair. Cliquez sur l'
options de sortie bouton et vous verrez de vos options. Si c'est une faiblesse de la ref
curseur, puis vous devez utiliser la mémoire de la grille. Les résultats vont à l'
curseur résultats de l'onglet au bas de la PE après que vous exécutez.
http://toad.10940.n7.nabble.com/display-ref-cursor-in-toad-td1427.html
OriginalL'auteur Zeus