SI n'EXISTE PAS Dans la Fonction PLSQL
J'ai une fonction qui a trois If/then avant l'ouverture d'un curseur. Le If/then vérifier la validité avant l'ouverture du curseur.
Je voudrais en ajouter un Si/Puis vérification de sa validité, cependant, il est un peu plus compliqué que les autres. Ci-dessous est un exemple, et j'ai bloquer a commenté ce que je voudrais ajouter:
begin
if not procedure.validation_function (<variable>, <condition>=TRUE) then
return variable2;
end if;
/* if not exists
(
SELECT 'x' FROM table1
WHERE table1_id = variable1_id
AND trunc(sysdate) < trunc(table1_date + 60)
) then
return variable2;
end if; */
open cursor(<argument>);
fetch cursor into <variable>;
close cursor;
return <variable>;
end;
Mon problème est que je viens d'un T-SQL monde, et je viens de trouver en PL/SQL de la si n'existe pas commande ne fonctionne pas. Est il possible que je peux, à partir de l'intérieur de la fonction, ont une Si NO_DATA_FOUND déclaration où je utiliser?
Est-il un moyen de nest autre fonction à l'intérieur, donc je peux:
begin
SELECT ....
FROM ....
WHERE ....
if NO_DATA_FOUND then
return variable2;
end if;
end;
"si n'existe pas" fonctionne T-SQL, il n'est pas si claire de ce que vous demandez , je vous suggère de simplifier votre question, je vois des fonctions,et les fi et les curseurs, et je me suis foiré de quoi avez-vous été askin'
OriginalL'auteur Phoenix | 2012-11-21
Vous devez vous connecter pour publier un commentaire.
Exists
condition peut être utilisée uniquement dans l'instruction SQL, il ne peut pas être utilisé directement en PL/SQL. Il y a plusieurs options:À l'aide de
case
expression avecexists
condition à l'intérieur d'unselect
déclaration:Ou (
rownum
est nécessaire pour garantir que le seul dossier sera retourné si il y a plusieurs enregistrements de répondre à condition de correspondance):Bien sûr, APC, il ne serait pas sage de compter chaque ligne correspondante si nous sommes seuls les tests pour l'existence d'au moins un enregistrement. J'ai modifié la deuxième méthode dans la réponse à la rendre plus efficace.
L'instruction de cas très bien fonctionné pour moi. Désolé pour le retard de réception de la! Merci!
OriginalL'auteur Nick Krasnov