SQL 过程中的参数
根据特定输入或输入标量值集合实现有条件的逻辑时,或需要返回一个或多个输出标量值并且不希望返回结果集时,在 SQL 过程中参数会很有用。
SQL 过程支持用于将 SQL 值传递至过程或传递出过程的参数。
设计或创建 SQL 过程时,应了解 SQL 过程中的参数功能和限制。
- Db2® 支持在 SQL 过程中有选择地使用大量输入、输出和输入/输出参数。CREATE PROCEDURE 语句例程特征符部分中的关键字 IN、OUT 和 INOUT 指示参数的方式或期望用途。IN 和 OUT 参数按值传递,INOUT 参数按引用传递。
- 对过程指定多个参数时,每个参数必须具有唯一名称。
- 如果要在过程中声明同名的变量和参数,那么必须在过程中所嵌套的有标号原子块内声明该变量。否则,Db2 将检测哪些对象本来可能会成为有歧义的名称引用。
- 不管 SQL 过程参数的数据类型如何,都不能指定为 SQLSTATE 或 SQLCODE。
请参阅 CREATE PROCEDURE (SQL) 语句,以了解有关 SQL 过程中的参数引用的完整详细信息。
以下 SQL 过程 myparams 演示如何使用 IN、INOUT 和 OUT 参数方式。假定 SQL 过程是在 CLP
文件 myfile.db2 中定义的,并且我们将使用命令行。
CREATE PROCEDURE myparams (IN p1 INT, INOUT p2 INT, OUT p3 INT)
LANGUAGE SQL
BEGIN
SET p2 = p1 + 1;
SET p3 = 2 * p2;
END@