Sql 当…进入存储过程时的情况
有什么方法可以在进入语句时处理案例Sql 当…进入存储过程时的情况,sql,oracle,stored-procedures,plsql,case,Sql,Oracle,Stored Procedures,Plsql,Case,有什么方法可以在进入语句时处理案例 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_Ot
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;
不,但你可以这样做:
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;
我们无法从单个CASE()语句中获得两个输出。您所能达到的最佳效果是在相互排斥的条件下进行两次单独的调用:
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;
/
Two-INTO子句不是一个有效的查询(当whater!=1时为空,否则为空),whole将替换为whater=1