请告诉我PL/SQL中IN,OUT,IN OUT参数之间有什么区别.以及如何使用PL/SQL过程返回多个值.
这些是您定义为函数参数列表的一部分的参数,它们作为结果的一部分返回.当您创建函数,参数默认为IN参数没有明确规定时(这意味着它们在过去,不返回),这就是为什么你有时会看到的pgAdmin不喜欢在somevariable变量类型的东西,当你使用函数向导.
你也可以有INOUT参数,它们都是传入的函数输入,可以被函数修改并返回.
--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
Run Code Online (Sandbox Code Playgroud)