HANA SQL而不是SQLScript:将表类型传递给过程

时间:2014-12-23 16:11:35

标签: sql business-objects hana

我创建了一个接受表类型的存储过程。它是一种复杂类型,用于动态过滤计算视图。过程和表类型如下所示:

CREATE PROCEDURE DynamicFilter
(
    it_filterOptions FilterTable
) LANGUAGE SQLSCRIPT
AS
BEGIN
    --Do stuff with filter table
END;

Table Type: FilterTable
-------------------------------------
| ColumnName    | Operator  | Value |
-------------------------------------
| ColumnA       | EQ        | 5     |
| ColumnB       | GT        | 10    |
-------------------------------------

使用Data Services,我需要能够调用该过程并传入it_filterOptions的值。

sql('SomeDataSource', 'CALL DynamicFilter(it_filterOptions => something?');

但是,从Data Services,当我调用该程序时,我将执行" SQL"而不是" SQLScript",因为执行上下文。因此,我无法声明和构建局部变量。因此,我无法弄清楚如何构建我的it_filterOptions变量。

1 个答案:

答案 0 :(得分:1)

实现此目的的另一种方法:

创建具有相同结构“FilterTable”的全局临时表。在执行过程之前,按如下所示更改过程并将数据插入到该全局临时表中。

CREATE PROCEDURE DynamicFilter()LANGUAGE SQLSCRIPT

AS

BEGIN

- 直接访问该全局临时表

- 使用过滤表

END;