2011-10-23 4 views
1

J'ai lu tellement de questions et d'articles sur ce site Web. Cependant, je suis fatigué de chercher quelque chose que je veux manipuler. Dans SQL Server, j'avais l'habitude d'appeler des procédures comme "EXEC Some_Procedure_name arg1, 'arg2', arg3, 'arg4'". Lorsque les paramètres d'entrée sont en numérique, je n'utiliserais pas de guillemet. Mais dans Oracle, ai-je vraiment besoin d'écrire quelque chose comme utiliser les paramètres d'entrée et de sortie? Disons que la procédure est la suivante:Jeu de données ASP.NET à partir d'Oracle Procédure stockée

CREATE OR REPLACE PROCEDURE GET_JOB 
(
    p_JOB_ID IN varchar2, 
    outCursor OUT MYGEN.sqlcur 
) 
IS 
BEGIN 
    OPEN outCursor FOR 
    SELECT * 
    FROM JOB 
    WHERE JOB_ID = p_JOB_ID; 
END GET_JOB; 
/

Alors je dois spécifier le nom du nom du paramètre d'entrée dans mon C# code comme ci-dessous:

var userNameParameter = command.Parameters.Add("p_JOB_ID", Job_ID); 
returnValueParameter.Direction = ParameterDirection.In; 

Je ne peux pas appeler simplement comme « Exécuter GET_JOB 'j208'; "?

Répondre

0

Pour renvoyer des jeux de données à partir d'une procédure stockée dans Oracle, vous devez utiliser un "REF CURSOR".

Ceci est expliqué en détail, avec des exemples de code pour .NET, ici:

http://www.oracle.com/technetwork/articles/dotnet/williams-refcursors-092375.html

+0

merci. J'ai lu cet article. Au fait, vous n'avez peut-être pas lu ma question très attentivement. Je ne demande pas comment utiliser le curseur de sortie. Je sais déjà comment l'utiliser. Mais je demande comment utiliser la syntaxe comme "Execute GET_JOB 'j208';" en oracle. Avez-vous d'autres suggestions? –

Questions connexes