6

PL / SQLのIN、OUT、INOUTパラメータの違いを教えてください。また、PL/SQLプロシージャを使用して複数の値を返すにはどうすればよいですか。

4

1 に答える 1

7

IN / OUT / INOUTパラメータとは何ですか?

これらは、結果の一部として返される関数の引数リストの一部として定義するパラメーターです。関数を作成するとき、明示的に指定されていない場合(つまり、引数が渡されて返されない場合)、引数はデフォルトでINパラメータになります。そのため、関数ウィザードを使用すると、PgAdminがINsomevariablevariabletypeのような動作をすることがあります。

INOUTパラメータを設定することもできます。これらのパラメータは、両方とも渡され、関数によって変更され、返される関数入力です。

SQLOUTPUTパラメータ-複数のレコードを返します

--SQL returning multiple records
CREATE OR REPLACE FUNCTION fn_sqltestmulti(param_subject varchar, 
  OUT test_id integer, OUT test_stuff text) RETURNS SETOF record
AS $$
  SELECT test_id, test_stuff 
    FROM testtable where test_stuff LIKE $1;
$$
LANGUAGE 'sql' VOLATILE;

--example
SELECT * FROM fn_sqltestmulti('%stuff%');

 --OUTPUT--
 test_id |     test_stuff
---------+--------------------
       1 | this is more stuff
       2 | this is new stuff

その他の例

于 2012-07-24T03:28:07.020 に答える