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

列视图参数绑定

语法

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")',?);