请告诉我PL/SQL中的IN、OUT、IN OUT参数有什么区别。另外,如何使用PL/SQL过程返回多个值。
发布于 2012-07-24 11:28:07
什么是IN/OUT/INOUT参数?
这些参数是作为函数参数列表的一部分定义的,它们将作为结果的一部分返回。当您创建函数时,参数在未显式指定时默认为IN参数(这意味着它们是传入的,而不是返回的),这就是为什么当您使用函数向导时,有时会看到PgAdmin执行类似in某些变量变量类型的操作。
你也可以有INOUT参数,它是函数的输入,可以被传入,可以被函数修改,也可以被返回。
SQL输出参数-返回多条记录
--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 stuffMORE EXAMPLES
https://stackoverflow.com/questions/11623653
复制相似问题