SELECT * FROM ( ); ::= 列视图的名称。
::= [{,}…}] 与列视图一起使用的参数列表。
::= => 定义用于引用给定表达式的参数。
::= {PLACEHOLDER. | HINT. | } 参数名称定义。“占位符”用于占位符参数,“提示”用于提示参数。
使用列视图参数绑定,可以将参数从过程/脚本式计算视图传递到参数化的列视图,例如层次结构视图、图形计算视图、脚本式计算视图。
示例 1 - 基本示例
在以下示例中,假设您具有含占位符参数“客户端”和“货币”的计算视图 CALC_VIEW。您希望在过程中使用此视图,并在执行该过程期间绑定参数值。
CREATE PROCEDURE my_proc_caller (IN in_client INT, IN in_currency INT, OUT outtab mytab_t) LANGUAGE SQLSCRIPT READS SQL DATA AS
BEGIN
outtab = SELECT * FROM CALC_VIEW (PLACEHOLDER."$$client$$" => :in_client , PLACEHOLDER."$$currency$$" => :in_currency );
END;
示例 2 - 使用层次结构视图
以下示例假设您有一个分层列视图 "H_PROC",并且您希望在过程中使用此视图。该过程应返回将通过变量传递的扩展表达式。
CREATE PROCEDURE "EXTEND_EXPRESSION"(
IN in_expr nvarchar(20),
OUT out_result "TTY_HIER_OUTPUT")
LANGUAGE SQLSCRIPT READS SQL DATA AS
BEGIN
DECLARE expr VARCHAR(256) = 'leaves(nodes())';
IF :in_expr <> '' THEN
expr = 'leaves(' || :in_expr || ')';
END IF;
out_result = SELECT query_node, result_node FROM h_proc ("expression" => :expr ) as h order by h.result_node;
END;
按如下方式调用此过程。
CALL "EXTEND_EXPRESSION"('',?);
CALL "EXTEND_EXPRESSION"('subtree("B1")',?);