案例时...... INTO - 存储过程

One*_*ofo 2 sql oracle plsql stored-procedures case

在INTO声明中有什么办法吗?

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;
Run Code Online (Sandbox Code Playgroud)

APC*_*APC 5

我们无法从单个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;
/
Run Code Online (Sandbox Code Playgroud)