How to get two return value from Oracle Stored Procedure

后端 未结 4 1116
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-19 07:39

I know how to get one return value from Oracle SP in Oracle as follow

MyReturn := MY_ORACLE_SP ();

If MY_ORACLE_SP2\'s ret

4条回答
  •  青春惊慌失措
    2020-12-19 07:48

    What you have there is technically not a procedure, but a function -- the difference being that a procedure does not have a return value and cannot be used as the right-hand-side of an assignment statement.

    You basically have two options:

    (1) Use OUT parameters. In this case I would make it a procedure with two OUT parameters. Generally people don't like functions that also have OUT parameters, as it violates the usual expectations. @Benoit's answer shows this method.

    (2) Define a type that contains multiple values and use this as the return type of the function. Example:

    CREATE TYPE two_values AS object (
      A NUMBER,
      b number
      );
      /
    
    CREATE FUNCTION get_two_values RETURN two_values AS
    BEGIN
      RETURN two_values(2,4);
    END;
    /
    

提交回复
热议问题