l'utilisation de lier des variables
Peut-on utiliser une liaison variable dans oracle à l'intérieur d'une procédure ou une fonction ?
Je suis en train de mettre à jour un lier des variables à l'intérieur de ma procédure. Puis-je le faire dans tous les cas?
if (condition) then
:v_bind:=10;
end if;
Puis-je faire au-dessus de la chose à l'intérieur d'une procédure ou d'une fonction..?
variable v_bind number;
create procedure abc as v_one
BEGIN
select count(a) into v_one from ab;
if(v_one<>0) then
:v_bind:=10;
end if;
Vais-je pouvoir le faire? C'est en me montrant la mauvaise variable v_bind
Vous pouvez poster votre code et de toute erreur(s). Pas sûr que c'est clair ce que vous essayez d'atteindre.
variable v_bind nombre; création d'une procédure abc v_one COMMENCER select count(a) dans v_one de ab; si(v_one<>0), alors :v_bind:=10; fin si; serai-je capable de faire cela...sa me montrant la mauvaise variable v_bind.....
variable v_bind nombre; création d'une procédure abc v_one COMMENCER select count(a) dans v_one de ab; si(v_one<>0), alors :v_bind:=10; fin si; serai-je capable de faire cela...sa me montrant la mauvaise variable v_bind.....
OriginalL'auteur jasmeet | 2011-03-06
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas créer une procédure avec une liaison variable parce que les procédures stockées sont des objets côté serveur et de lier les variables n'existent que sur le côté client.
Suppose que je suis à l'aide de SQL*Plus, et que j'ai créé quelques variables de liaison. Une fois que j'ai sortie de SQL*Plus, tout lier les variables que j'ai créé n'existe plus. Cependant, les procédures stockées ont à persister dans la base de données, et par conséquent, ils ne peuvent pas avoir de toute référence à quelque chose qui a été créé puis détruit sur le client.
Voici un exemple montrant que vous ne pouvez pas créer une procédure qui fait référence à une liaison variable:
Vous pouvez, cependant, le passage d'un lier des variables comme
OUT
paramètre d'une procédure. La procédure peut ensuite affecter une valeur à laOUT
paramètre, et cette valeur sera stockée dans votre lier des variables.Supposons que nous avons la procédure suivante:
Nous pouvons utiliser cette fonction pour définir lier des variables comme suit:
OriginalL'auteur Luke Woodward
Non, vous ne pouvez pas faire ce que vous demandez. Lier les variables en plsql sont gérés de manière transparente. Vous n'avez pas explicitement code de lier les variables sauf si vous allez utiliser "exécution immédiate" pour exécuter le code en dehors de plsql comme ceci:
Le code suivant utilise des variables de liaison ainsi, mais il est géré de manière transparente par plsql:
OriginalL'auteur CoderSteve
Vous ne pouvez pas lier un sqlplus variable dans une session à une fonction/procédure. Il vous donnera l'erreur de "Mauvais lier des variables". Vous pouvez en fait juste passer lier des variables à partir de votre oracle session à aucune procédure.
Nous allons voir un exemple
Et si vous exécutez l'exemple ci-dessus, en les insérant dans la fonction/procédure, il va vous montrer l'erreur.
Erreur
Ainsi, il n'est pas possible de l'utiliser au niveau de la session lier les variables dans les procédures/fonctions. Dans l'exemple ci-dessous t2 est une liaison variable
Vous pouvez appeler cette procédure de sqlplus comme
OriginalL'auteur Rohan Sadale