CASE WHEN...INTO - Stored Procedure
is ther开发者_如何学编程e any way to do a CASE WHEN INTO Statement?
Create or replace procedure example
AS
Variable1 varchar;
Variable2 varchar;
BEGIN
Select (CASE WHEN number = 1 THEN
This_thing INTO Variable1
ELSE
That_thing INTO Variable2) The_Other
FROM table;
END;
We cannot get two outputs from a single CASE() statement. The best you can achieve is having two separate calls with mutually exclusive conditions:
create or replace procedure example as
variable1 t69.this_thing%type;
variable2 t69.that_thing%type;
begin
select (case when whatever = 1 then
this_thing
else
null
end )
, (case when whatever != 1 then
that_thing
else
null
end )
into variable1, variable2
from t69;
end;
/
No, but you can so:
declare
Variable1 varchar2(30);
Variable2 varchar2(30);
BEGIN
Select decode(dummy,'X','This_thing'),
decode(dummy,'X',null,'That_thing')
INTO Variable1,Variable2
FROM dual;
END;
精彩评论