您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

调用期间的值绑定

标量参数

请考虑以下过程:

CREATE PROCEDURE test_scalar (IN i INT, IN a VARCHAR)

AS

BEGIN

SELECT i AS "I", a AS "A" FROM DUMMY;

END;

您可以使用标量值绑定来传递参数:

CALL test_scalar (1, 'ABC');

您还可以使用表达式绑定。

CALL test_scalar (1+1, upper('abc'))

表参数

请考虑以下过程:

CREATE TYPE tab_type AS TABLE (I INT, A VARCHAR);

CREATE TABLE tab1 (I INT, A VARCHAR);

CREATE PROCEDURE test_table (IN tab tab_type)

AS

BEGIN

SELECT * FROM :tab;

END;

您可以将表和视图传递给此函数的参数。

CALL test_table (tab1)

备注当前不支持多个值的隐式绑定。 将值绑定到表变量时,应始终使用 SQL 特殊标识符。

CALL test_table ("tab1")

备注不要使用以下语法: CALL test_table ('tab')