【问题标题】:HANA SQL not SQLScript: Pass a table type to a procedureHANA SQL 而非 SQLScript:将表类型传递给过程
【发布时间】:2015-02-21 19:27:44
【问题描述】:

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

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    |
-------------------------------------

使用数据服务,我需要能够调用该过程并为 it_filterOptions 传递值。

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

但是,在 Data Services 中,当我调用该过程时,由于执行上下文,我将执行“SQL”而不是“SQLScript”。因此,我无法声明和构建局部变量。因此,我不知道如何构建我的 it_filterOptions 变量。

【问题讨论】:

    标签: sql business-objects hana


    【解决方案1】:

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

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

    创建过程 DynamicFilter() 语言 SQLSCRIPT

    作为

    开始

    -- 直接访问那个全局临时表

    --用过滤表做事

    结束;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多