Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: if statement inside function
On 15 Feb 2006 10:24:20 -0800, drdave_at_canoemail.com wrote:
>New to Oracle and cant understand why my code is not working ..
>
>FUNCTION "VARIATION_ID" ("range_id" IN VARCHAR2) return NUMBER is
> rangebig NUMBER;
>
>BEGIN
>
>
> SELECT max(minimum_wage_variation_id) as bigrange into rangebig
> FROM minimum_wage_variation
>
> IF range_id = 1 THEN
> WHERE minimum_wage_variation_id < 100
> ELSE
> WHERE minimum_wage_variation_id > 100
> END IF;
>
>
> RETURN rangebig;
>END;
>
>error:00933 sql command not properly ended, yet if I put a semicolon on
>the where clauses it throws an error on the else clause..
>
>thx.
>
>Dave
You are mixing a sql statement with procedural code. This is not
allowed and not syntactically correct.
You would need to have either 2 different select into statements
if range_id = 1
then
select max(minimum_wage_variation_id)
into rangebig
from minimum_wage_variation
where mimimum_wage_variation_id < 100;
else
select max(minimum_wage_variation_id)
into rangebig
from minimum_wage_variation
where mimimum_wage_variation_id > 100;
end if;
-- Sybrand Bakker, Senior Oracle DBAReceived on Wed Feb 15 2006 - 12:52:37 CST
![]() |
![]() |