2009-04-03 9 views
0

Je souhaite créer une fonction pouvant être utilisée dans la partie where d'une instruction select. Comme ceci:Fonction SQL ORACLE pouvant être utilisée dans la partie where d'une instruction select

select 'x' from table where addNumber(4,3)=7; 

Je sais comment faire cela en MS SQL, mais je voudrais faire cela Oracle SQL. Comment puis-je faire ceci?

+0

Vous devriez peut-être essayer de déterminer si votre fonction définie par l'utilisateur (udf) est une fonction déterministe ou non. Lorsque votre udf est déclaré déterministe, vous pouvez gagner en performance et vous pouvez utiliser votre udf dans un index fonctionnel. – tuinstoel

Répondre

1

Vous devez écrire une fonction PL/SQL ...

CREATE OR REPLACE FUNCTION addNumber(firstParam IN NUMBER, 
            secondParam IN NUMBER) 
RETURN NUMBER 
IS 
BEGIN 
    RETURN firstParam + secondParam; 
END; 
/

... courir ce dans le scheam que vous utilisez (probablement en utilisant SQL * Plus), puis l'appeler comme vous l'avez fait votre instruction SQL ci-dessus.

+0

Merci pour la réponse rapide – gyurisc

Questions connexes